我有两张桌子AORDER for Purchase& BORDER出售。我想得到待定数量。销售订单对一个采购订单可以有超过1条记录。我不想显示那些挂单数量为0的订单。我试过这个:
SELECT ;
aorder.orderid,;
aorder.orderdate,;
aorder.itemname,;
aorder.partyname,;
aorder.qty as Purchase,;
SUM(border.qty) AS Sale,;
SUM(aorder.qty-border.qty) as Pending;
FROM ;
aorder;
LEFT JOIN border ;
ON aorder.orderid = border.porderid;
GROUP BY ;
aorder.orderid,;
aorder.orderdate,;
aorder.itemname,;
aorder.partyname,;
aorder.qty
但是我没有隐藏购买qty = sale qty的记录。
Thnx提前。
答案 0 :(得分:0)
正如Shahkalpesh所说,你确实需要申请,但你的SUM不正确。
应该是
aorder.qty - SUM(border.qty)> 0; &安培;&安培;也适合您的现场参考。
原因是,SUM将总和中的每个部分相加。您将只有一个“购买”记录,但有许多“销售”记录,如同库存控制先进/先出(FIFO),后进/先出(LIFO)等
因此,假设您购买了数量为10的订单#1,并且已经分别出售了数量2,1,1,3,2,1 ...总共6个销售记录。你在做什么
sum( 10 - 2
+ 10 - 1
+ 10 - 1
+ 10 - 3
+ 10 - 2
+ 10 - 1 )
修改后的方式是......
10 - SUM( 2 + 1 + 1 + 3 + 2 + 1 )