我在Sql Server 2005中遇到了一个查询?

时间:2013-10-24 10:24:00

标签: sql-server-2005 group-by

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

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

任何人都知道如何做到这一点

1 个答案:

答案 0 :(得分: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 demo