我有两张桌子;
现在让我说我想知道每个项目插入了多少单位,我只是查询
select sum(unit) from item_in order by item_id
同样,如果我想知道有多少单位被取出,我只是查询
select sum(unit) from item_out order by item_id
我不知道如何查询每个项目的余额(item_in - item_out)。
如果我可以在一个存储过程中进行所有查询,那就太好了,因为我想使用DataWindow调用该过程。
请帮助,谢谢。
答案 0 :(得分:2)
SELECT
item_id,
SUM(unit) AS unit_balance
FROM (
SELECT item_id, unit FROM item_in
UNION ALL
SELECT item_id, -unit FROM item_out
) AS s (item_id, unit)
GROUP BY item_id
答案 1 :(得分:1)
我对sybase一无所知,但是这个,或者这个的微妙变化应该有效。
select t1.item_id, sum(t1.unit - coalesce(t2.unit, 0)) as Balance
from item_in t1
left join item_out t2
on t1.item_id = t2.item_id
group by t1.item_id
当t2中的单位为NULL时,Coalesce将输出0,以便您可以正确地从中减去item_in单位数量。
注意:这适用于SQL Server。我不知道在sybase中运行它时是否会发现任何语法差异:(
答案 2 :(得分:0)
我希望以下查询有效:
select
sum(inn.unit) - sum(outt.unit)
from item_in inn
inner join item_out outt on inn.item_id = outt.item_id