SQL每日一题(20211110)
SQL每日一题(20220422)
select a.WAREHOUSE as 仓库,
a.ITEM as 产品,
sum(ifnull(b.QTY, 0)) as 期初,
sum(ifnull(c.QTY, 0)) as 发出,
sum(ifnull(d.QTY, 0)) as 收入,
sum(ifnull(b.QTY, 0) + ifnull(d.QTY, 0) - ifnull(c.QTY, 0)) as 结存
from (select WAREHOUSE, ITEM
from T0222A
union
select WAREHOUSE, ITEM
from T0222B
union
select WAREHOUSE, ITEM
from T0222C) a
left join T0222A b on a.WAREHOUSE = b.WAREHOUSE and a.ITEM = b.ITEM
left join T0222B c on a.WAREHOUSE = c.WAREHOUSE and a.ITEM = c.ITEM
left join T0222C d on a.WAREHOUSE = d.WAREHOUSE and a.ITEM = d.ITEM
GROUP BY a.WAREHOUSE, a.ITEM;
SELECT COALESCE(A.WAREHOUSE, B.WAREHOUSE, C.WAREHOUSE) AS "仓库",
COALESCE(A.ITEM, B.ITEM, C.ITEM) AS "产品",
NVL(A.QTY, 0) AS "期初",
NVL(B.QTY, 0) AS "发出",
NVL(C.QTY, 0) AS "收入",
NVL(A.QTY, 0) - NVL(B.QTY, 0) + NVL(C.QTY, 0) AS "结存"
FROM T0222A A
FULL JOIN T0222B B ON A.WAREHOUSE = B.WAREHOUSE AND A.ITEM = B.ITEM
FULL JOIN T0222C C ON A.WAREHOUSE = C.WAREHOUSE AND A.ITEM = C.ITEM
ORDER BY "仓库";