變量進行數學這裏是什麼我迄今嘗試的例子的SQL查詢:創建與來自多個表
的表會是什麼樣子樣機:
庫存
ID | lowrange | highrange
-------------------------------
1 | 15 | 20
2 | 21 | 30
審計(從加入這個查詢旁白未使用)
MissingOrVoid
ID | Item | Missing | Void
---------------------------------
1 | 17 | 1 | 0
1 | 19 | 1 | 0
最近查詢我已經嘗試使用:
SELECT I.*,
SUM(
(I.HIGHRANGE - I.LOWRANGE + 1)
- (Count(M.Missing) from M where M.ID = I.ID)
- (Count(M.Void) from M where M.ID = I.ID)) AS Item_Quantity
FROM Inventory I
JOIN Audit A
ON A.ID = I.ID
JOIN MissingOrVoid M
ON M.ID = I.ID
結果應該是:
ID | lowrange | highrange | Item_Quantity
-----------------------------------------------
1 | 15 | 20 | 4
2 | 21 | 30 | 10
我不記得正是我所做的改動,但在之前收到的錯誤消息的嘗試是「無法對包含聚合或子查詢的表達式執行聚合函數」。目前錯誤是「from」附近的錯誤(M.Missing旁邊的錯誤,但是在我對SQL最少的知識中,似乎這些語法問題導致徹底失敗,並且可能存在直到所有的語法問題都是固定的)。
我真的在轟炸的部分顯然是SUM()部分。我遠離數據庫架構師,所以有人可以解釋如何正確執行此操作,並可能指向資源的方向來了解這種類型的功能?
感謝
我不知道我跟着你的榜樣。在查詢中,「項目」列扮演(應該扮演)角色的一些混淆。隨着Inventory.ID「1」失蹤數看起來像「2」不是「1」(ERGO 20-15-2 = 3),除非你的意思是這樣的加盟庫存MissingOrVoid:...上inventory.id = missingorvoid.item。現在,您將加入ID列。 – Tim 2011-02-16 14:20:38
1爲結構清晰,示出了嘗試和預期的結果 – RichardTheKiwi 2011-02-16 14:55:40
@Tim,缺少的項目都與ID 1,但他們在一個序列中的殼體15,16,17,18,19計數,所以,20是該組中的項目(最初6項)。 20-15 = 5,所以我們必須加1到那個數。減去兩名失蹤的項目,我們就只剩下4 – Robert 2011-02-16 18:13:42