0

嗨我想写一个查询,但我不明白如何解决它

ID  Category    Volume
1   FFP         157
1   RBCD        279
2   FFP         146
2   PLT         70
2   RBCD        280
3   FFP         145
3   PLT         67
3   RBCD        275
4   FFP         148
4   RBCD        280

我的结果应该是这样的

ID  Category1   Volume1 Category2   Volume2 Category3   Volume3
1   FFP         157    RBCD          279    NULL        NULL
2   FFP         146    RBCD          280    PLT         70
3   FFP         145    RBCD          275    PLT         67
4   FFP         148    RBCD          280    NULL        NULL

通过使用Juergen D 我变得像这样

ID  Category1   volume1     Category2   volume2 Category3   Volume3
1   FFP         157         NULL        NULL    NULL        Null
1   NULL        NULL        RBCD        279     NULL        Null
2   FFP         146         NULL        NULL    NULL        Null
2   NULL        NULL        RBCD        280     NULL        Null
2   NULL        NULL        NULL        NULL    PLT         70
3   FFP         145         NULL        NULL    NULL        Null
3   NULL        NULL        RBCD        275     NULL        Null
3   NULL        NULL        NULL        NULL    PLT         67
4   FFP         148         NULL        NULL    NULL        Null
4   NULL        NULL        RBCD        280     NULL        Null

任何人都给我任何想法如何做到这一点

4

1 回答 1

1
select id,
       min(case when Category = 'FFP' then Category end) as Category1,
       sum(case when Category = 'FFP' then Volume end) as Volume1,
       min(case when Category = 'RBCD' then Category end) as Category2,
       sum(case when Category = 'RBCD' then Volume end) as Volume2,
       min(case when Category = 'PLT' then Category end) as Category3,
       sum(case when Category = 'PLT' then Volume end) as Volume3
from your_table
GROUP BY id

SQLFiddle 演示

于 2013-10-24T10:26:26.020 回答