Visual Foxpro查询待处理数量

时间:2013-03-11 08:05:39

标签: sql select foxpro visual-foxpro

我有两张桌子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提前。

1 个答案:

答案 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 )