SQL嵌套表

时间:2018-11-01 22:07:05

标签: sql

目前我有一张桌子:

enter image description here

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链接添加总使用量

1 个答案:

答案 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