变量进行数学这里是什么我迄今尝试的例子的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