2016-08-15 122 views
-2
  • 用的Id-PROD,遞減,日期字段
  • 與參賽作品的Id-PROD數量,金額的產品。
  • 帶Id-Prod數量,數量的分揀。

我想讓它加入的ID-PROD的3個表和分組它的查詢,總結每個產品的數量和金額計算這些股票等於總結quantityIn -sum QUantityOut 謝謝SQL加入3個表組和

+2

你嘗試過什麼然而?如果你想要一個快速的答案(或任何答案),你應該清理你的問題,以便更清楚。你可以包含一些示例數據。 –

+0

問題不太清楚。你能提供一些樣本數據和你想要得到的結果嗎? – Mureinik

+0

有沒有辦法回答這個問題,因爲你不告訴我們如何計算出數量和數量。 – Hogan

回答

1

的加入,與1-N和看起來是這樣的 - 我們需要做一個子查詢來獲得左側前的款項聯接和聚結以空值設置爲0。

SELECT P.ID-Prod, 
     COALESCE(E.s,0) AS IN-Q, 
     COALESCE(S.s,0) AS OUT-Q, 
     COALESCE(E.s,0) - COALESCE(S.s,0) AS Stock 
FROM Products P 
LEFT JOIN (SELECT ID-Prod, SUM(Quantity) AS s 
      FROM ENTRIES GROUP BY ID-Prod) E ON P.ID-Prod = E.ID-Prod 
LEFT JOIN (SELECT ID-Prod, SUM(Quantity) AS s 
      FROM Sorties GROUP BY ID-Prod) S ON P.ID-Prod = S.ID-Prod 
GROUP BY P.ID-Prod 
+0

如果沒有條目和Sorties之間的聯繫,那麼條目和Sorties數量是不是可以通過聯接虛擬誇大?因此在加入之前可能需要完成的總和? (然而,我會同意關於這方面的問題還不清楚)。想象一下,產品1的1,2,3的入口數量和產品1的4,5的數量。如果數量1與4和5都相關; 1將被計數兩次,並且4將被計數3次,每次進入記錄一次。 – xQbert

+0

@xQbert你的意思是如果E和S表中有1-N?是的,這是一個問題,讓我解決。 – Hogan

+0

1-N是的。這個問題對細節還不清楚,但對於表格結構來說,這似乎是一種可能的風險。 – xQbert