目前我有一张桌子:
ItemCode OldItem NewItem Usage
A B 3
B A C 1
C B D 5
D C 1
E 8
OutPut
ItemCode Usage
D 10
E 8
能否请您提供有关SQL查询的帮助?我有大约2000个项目,我需要根据newItem链接添加总使用量
答案 0 :(得分:0)
D = C用法+ B用法+ A用法,因为它们是基于旧的链接的 零件
除非您试图指出这是某种形式的层次结构,否则我看不到它们如何“链接”。我怀疑您在决定存储旧/新项目值时需要更加直白,以便不涉及层次结构。例如
ItemCode OldItem NewItem Usage
A D 3
B A D 1
C B D 5
D C D 1
E E 8
与此同时,这可能会有所帮助:
SELECT
CASE
WHEN coalesce(OldItem,ItemCode) IN ('A', 'B', 'C','D') THEN 'D'
ELSE ItemCode
END AS ItemCode
, SUM(Usage)
FROM yourtable t
GROUP BY
CASE
WHEN coalesce(OldItem,ItemCode) IN ('A', 'B', 'C','D') THEN 'D'
ELSE ItemCode
END