1

以下に示すように、「チケット」という名前のテーブルがあります。

number   branchid
3001     1
3002     1
5001     2
7001     2
3001     3

私がやりたいのは、新しいテーブルを次のように作成することだけです。

branchid    High-Value      Non-HighValue

そして、3000シリーズからの数が発生した場合、発生の合計数がそのbranchidに対して高値列にリストされ、5000または7000シリーズの数が発生するたびに、発生の合計数がそのブランチIDに対して非高値列にリストされるようにしたい支店ID。例えば:

Branchid    HighValue    non-highvalue
1           2            NULL
2           NULL         2
3           1            NULL
4

1 に答える 1

2
select  branchid
,       sum(case when number between 3000 and 3999 then 1 end) as HighValue
,       sum(case when number between 5000 and 5999 then 1 
                 when number between 7000 and 7999 then 1 end) as NonHighValue
from    ticket
group by
        branchid

SQL Fiddle での実例。

于 2012-10-11T07:20:36.573 に答える