使用SUM函数

时间:2017-06-23 18:45:03

标签: mysql sql

我想用其单位计算总购买库存,cunsume库存和当前库存。我使用下面的sqlquery给出了错误的结果。

我有3张不同的桌子1。 Purchase()包含购买记录2.消费(包含消费记录)3。Kichen项目(包含不同的kichen项目及其单位的名称)

。我使用下面的sqlquery给出了错误的结果。

select  k.Data as 'Item Name', SUM(p.Quantity) as 'Purchased Stock', SUM(DISTINCT c.Used_Quantity) as 'Cunsumed Stock', (SUM(p.Quantity)- SUM(DISTINCT c.Used_Quantity)) as 'Current Stock', k.Unit 
from kichenitems k, dailyCunsumtion c, dailyPurchase p 
where  c.Item_Name=p.Item_Name and k.Data =p.Item_Name and k.Data =c.Item_Name 
group by k.Data,k.Unit

它给出了错误的结果告诉我告诉我正确的一个因此我无法获得所有项目名称与总购买库存,总消耗量和当前库存及其适当的单位。 提前谢谢......

1 个答案:

答案 0 :(得分:0)

您必须在子查询中将不同记录与dailyCunsumtion隔离 - 然后您可以在外部查询中对它们进行SUM化。

试试这个:

SELECT
  k.Data as 'Item Name'
, SUM(p.Quantity) as 'Purchased Stock'
, SUM(c.Used_Quantity) as 'Cunsumed Stock'
, SUM(p.Quantity - c.Used_Quantity) as 'Current Stock'
, k.Unit 
FROM kichenitems k
INNER JOIN dailyPurchase p            
       AND p.Item_Name = k.Data      
INNER JOIN (SELECT DISTINCT Item_Name
                          , Used_Quantity
                       FROM dailyCunsumtion) c                  
                         ON c.Item_Name = p.Item_Name    
GROUP BY k.Data, k.Unit