2017-09-19 38 views
0

我有2個表,庫存和交易,庫存包含有關物品詳情。交易通過PK進行鏈接,以記錄貨物的進出數量。多個計算從多個表?

我試圖獲得,不僅顯示庫存明細的表,但也該交易總計爲每個廣告行。

目前我所用的工作是:

SELECT Inventory.InvID, 
sum(case when ITT.TransactionTypeName = 'GoodsIn' then Quantity else 0 end) As Goods_In 
sum(case when ITT.TransactionTypeName = 'GoodsOut' then Quantity else 0 end) As Goods_Out 
FROM 
Inventory 
INNER JOIN Transactions As IT ON Inventory.InvID = IT.InvID 
INNER JOIN TransactionType AS ITT ON IT.TransactionType = ITT.TransactionTypeID 
GROUP BY ITT.TransactionTypeName 

我發現這個堆棧溢出的另一篇文章,並通過各種測試和問題似乎無法得到它提供正確的數據。

有了這個,我有幾個問題:

  • 是否可以執行一個查詢計算,如上面?
  • 有人點我在正確的方向來解決這個特定的查詢?
  • 我使用正確的加入了這項任務?和/或是否爲聯盟要求?

編輯

經過進一步的測試我沒有得到這方面的工作,這是我自己的愚蠢的錯誤。我不得不集團是通過公共字段(在這種情況下Inventory.InvID)

EDIT2

然而,這並不似乎返回沒有交易值(例如空或未選中的項)

回答

0

所以我基本上回答了我自己的問題(這確實是可能的)的一部分,我得到一個錯誤

錯誤代碼:1055. SELECT列表的表達式#1不在GROUP BY子句中,幷包含nonaggregated列'Inventory .InvID',它在功能上不依賴於G中的列ROUP BY子句;這是不兼容的sql_mode = only_full_group_by 0.000秒

這讓我考出Group By子句。我確定我需要在Joined表中使用Common Field,這導致我得到正確的數據。