我有这两个表:
存储
id (int, PK)
articleNr (nvarchar(10))
shelf (nvarchar(10))
number (int)
订单:
orderNr (int, PK)
articleNr (nvarchar(10))
ordered (int)
picked (int)
我想知道某件商品编号中有多少件可供购买。
所以文章的总数只是
select sum(number)
from storage
group by articleNr
订购和尚未挑选的文章的数量只是
select sum(ordered) - sum(picked)
from orders
group by articleNr
所以我真正要做的就是从前者中减去后者并得到我的答案,但是当我尝试在查询中执行此操作时,我无法做到这一点,因为它是和谐的在SUM中。我真正想要做的是:
select sum(query1) - sum(query2)
(其中query1是上面的第一个查询,query2是第二个查询)
但是当我这样做时,我会收到主题中的错误消息。
答案 0 :(得分:1)
也许这个:
select coalesce(s.articleNr, o.articleNr) as articleNr,
coalesce(s.q_stored,0) - coalesce(o.q_topick,0) as q_remaining
from (
select articleNr, sum(number) as q_stored
from storage
group by articleNr) s
full join (
select articleNr, sum(ordered) - sum(picked) as q_topick
from orders
group by articleNr
) o on o.articleNr = s.articleNr