0

私はテーブルを持っています:

STATUS  DEFECT   DATE

CLOSED  IP       01.01.2012 
CLOSED  TV       03.03.2012
CLOSED  ADSL     05.05.2012
CLOSED  ADSL     11.01.2012 
CLOSED  TV       15.01.2012
NEW     TV         
NEW     TV

これを月ごとにグループ化し、特定の欠陥ごとにカウントしたいと思います。CLOSED と見なされるステータス

私がなりたい結果のテーブル:

MONTH     TV  ADSL  IP
January   1   1     1
March     1   0     0
May       0   1     0

私はdb2データベースを使用しているので、機能する月を表示する部分は次のとおりです。

select case month(timestamp_iso(DATE))
        when 1 then 'January'
        when 2 then 'February'
        when 3 then 'March'
        when 4 then 'April'
        when 5 then 'May'
        when 6 then 'Jun'
        when 7 then 'July'
        when 8 then 'August'
        when 9 then 'September' 
        when 10 then 'October'
        when 11 then 'November'
        when 12 then 'December'
    end as Month

from TABLE
where  STATUS='CLOSED'
group by month(timestamp_iso(DATE))
order by month(timestamp_iso(DATE))

だから私はカウントのためにこの部分を追加する必要があります.Thanks

4

1 に答える 1

3

1つのカテゴリの欠陥にカウントを制限する別のcaseステートメントを使用して、欠陥カテゴリをカウントできます。

select case month(timestamp_iso(DATE))
        when 1 then 'January'
        when 2 then 'February'
        when 3 then 'March'
        when 4 then 'April'
        when 5 then 'May'
        when 6 then 'Jun'
        when 7 then 'July'
        when 8 then 'August'
        when 9 then 'September' 
        when 10 then 'October'
        when 11 then 'November'
        when 12 then 'December'
    end as Month,
    count (case when defect = 'TV' then 1 end) TV,
    count (case when defect = 'ADSL' then 1 end) ADSL,
    count (case when defect = 'IP' then 1 end) IP
from TABLE
where  STATUS='CLOSED'
group by month(timestamp_iso(DATE))
order by month(timestamp_iso(DATE))
于 2012-04-17T12:00:12.363 に答える