2017-08-27 48 views
0

有人可以帮助我吗?获得2列的总和,并在SQL中多出它们?

SELECT x.poid 
     , COUNT(b.poitemsid) 
     , SUM(SUM(unitprice) * SUM(qty)) 
     , recievedate inventoryrecieved as c 
    FULL 
    OUTER 
    JOIN poitems b 
    ON c.poitemsid = b.poitemsid 
    FULL 
    OUTER 
    JOIN purchaseorder x 
    ON b.poid = x.poid 
    GROUP 
    BY x.poid 
     , podate 
     , b.poitemsid 
     , recievedate 
     , unitprice 
     , qty 
+0

'SUM(col1 * col2)' – Mihai

+1

如果你解释你想要做的事情,有人更有可能帮助你。第一眼看上去,你似乎总结了所有的价格,然后乘以所有数量的总和。这可能没有用,我怀疑你可能是在总和之后(单位价格*数量) – Harun

+0

你也可能不想按照你正在求和的字段进行分组,因为这会给你很多单独的总和,只有一个值时间,也就是价值本身。 – Harun

回答

0

我认为你正在寻找:

select po.POID, Count(p.POItemsID), 
     Sum(UnitPrice * Qty), 
     RecieveDate 
from InventoryRecieved ic join 
    POItems p 
    on ic.POItemsID = p.POItemsID join 
    PurchaseOrder po 
    on p.POID = po.POID 
group by po.POID, p.POItemsID, RecieveDate; 

注:

  • 到问题的解决方案是一个产品的简单sum()
  • MySQL不支持full outer join。基本的内部连接应该没问题。
  • 您的group by只需要select的未分类列。
  • 建议使用表名的缩写表别名。
+0

感谢救星的帮助 –