2013-03-11 28 views
0

我有兩個表AORDER購買& BORDER出售。我想獲得待定數量。對於一個採購訂單,銷售訂單可以有多個記錄。我不希望顯示有那些爲了未決數量的0。我試過這樣:Visual Foxpro查詢待定數量

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 

但我無法隱藏其購買數量=銷售數量的記錄。

Thnx提前。

+0

添加'HAVING'子句查詢。例如, 'HAVING SUM(aorder.qty - border.qty)> 0' – shahkalpesh 2013-03-11 08:08:41

回答

0

由於Shahkalpesh提到,你需要應用有,但你的SUM不正確。

它應該是

aorder.qty - SUM(border.qty)> 0; & &也可供您參考。

原因,SUM在總和中加總每個部分。您將只有一個「購買」記錄,但許多「銷售」記錄,就像庫存控制先進先出(FIFO),後進先出(LIFO)等一樣

因此,假設您有購買訂單#1,數量爲10,並分別爲數量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) 
+0

感謝您的回覆。 DRapp我以正確的方式得到了待處理數量。但沒有銷售訂單的採購訂單不在列表中。如何解決它。我試着在哪裏,並有條款。但不工作。在我的查詢銷售可以比購買更大。我的意思是銷售也可以是負面的。 - – 2013-03-13 10:27:08