SQL:sum(unit)テーブルマイナス和(ユニット)テーブルB
-
28-10-2019 - |
質問
2つのテーブルがあります。
- item_in(item_id、unit)
- item_out(item_id、unit)
さて、私はすべてのアイテムに挿入されているユニットの数を知りたいとしましょう、私はただクエリをします
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を使用して手順を呼び出したいので、1つのストアドプロシージャですべてのクエリを作成できる場合は素晴らしいことです。
助けてください、ありがとう。
解決
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
他のヒント
私は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
Coalesceは、T2のユニットがnullであるときはいつでも0を配置します。そのため、Item_inユニットの量を適切に差し引くことができます。
注:これはSQL Serverで機能します。 Sybaseで実行するときに構文の違いがあるかどうかはわかりません:(
次のクエリが機能することを願っています:
select
sum(inn.unit) - sum(outt.unit)
from item_in inn
inner join item_out outt on inn.item_id = outt.item_id
所属していません StackOverflow