2017-09-14 203 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

要獲得百分比,您需要總數。爲此,你需要另一個計算。一種方法是:

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