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