2017-09-14 21 views
0

私は次のクエリがありますSQL割合クエリ

SELECT SUM(KDV_Haric_Ciro) AS Ciro 
    , Ana_Kategori 
    FROM general_Table 
Where EczaneID = $pharmacy_id 
    AND Yil = '$dateYear' 
GROUP 
    BY Ana_Kategori 
ORDER 
    BY Ciro DESC 

を私はパーセンテージで結果が欲しいです。

現在の結果は次のようにされています

A 5 
B 7 
C 8 

私は割合方法でネストされたクエリを試してみましたが、すべて失敗しました。

+0

パラメータ化されたクエリの重要性を参照してください – Strawberry

答えて

0

パーセントを取得するには、合計が必要です。そのためには別の計算が必要です。 1つの方法は次のとおりです。

SELECT gt.Ana_Kategori, SUM(gt.KDV_Haric_Ciro) AS Ciro, 
     SUM(gt.KDV_Haric_Ciro)/total.KDV_Haric_Ciro as ratio 
FROM general_Table gt CROSS JOIN 
    (SELECT SUM(gt2.KDV_Haric_Ciro) as KDV_Haric_Ciro 
     FROM general_Table gt2 
     WHERE gt2.EczaneID = '".$pharmacy_id."' AND gt2.Yil = '".$dateYear."' 
    ) total 
WHERE gt.EczaneID = '".$pharmacy_id."' AND gt.Yil = '".$dateYear."' 
GROUP BY gt.Ana_Kategori 
ORDER BY `Ciro` DESC; 

注:パラメータ値でクエリ文字列を削除しないでください。パラメータ化されたクエリを書く方法を学ぶ必要があります。

+0

は#1054を与えます - 'where句'のエラーでgt2.EczaneID 'というエラーが発生しました –

+0

@shivzuh上記のクエリの作成方法がわかっている場合は、エラーを修正する方法。それはちょうど間違ったエイリアスです。 – Eric