プロが教える店舗&オフィスのセキュリティ対策術

PostgreSQL8.3にて、

|ID|担当者| 年月 |金額|
| 1|太 郎|200807| 500|
| 2|次 郎|200807|1000|
| 3|次 郎|200807| 500|
| 3|太 郎|200808|1000|
| 4|次 郎|200808|1100|
| 5|三 郎|200808| 900|
| 6|太 郎|200809|1100|
| 7|三 郎|200809|1200|

というテーブルから、

| 年月 |太郎|次郎|三郎|
|200807| 500|1500| 0|
|200808|1000|1100| 900|
|200809|1100| 0|1200|

このようにすることは可能なのでしょうか。
どうかよろしくお願いします。

A 回答 (1件)

ためしていませんが


select 年月,
sum( case 担当者 when '太郎' then 金額 else 0 end ) as 太郎,
sum( case 担当者 when '次郎' then 金額 else 0 end ) as 次郎,
sum( case 担当者 when '三郎' then 金額 else 0 end ) as 三郎
from テーブル
group by 年月
    • good
    • 0
この回答へのお礼

完璧に出来ました。
どうもありがとうございました。

回答いただいた内容をふまえて、

ID|担当者| 年月 |金額
01| 太郎 |2008-07-01| 500
02| 次郎 |2008-07-02|1000
03| 次郎 |2008-07-03| 500
04| 太郎 |2008-08-04|1000
05| 次郎 |2008-08-05|1100
06| 三郎 |2008-08-06| 900
07| 太郎 |2008-09-07|1100
08| 三郎 |2008-09-08|1200

「年月」の内容を'年月日'にかえてやってみました。

selectto_char(年月, 'yyyy-mm') as 年月,
sum( case 担当者 when '太郎' then 金額 else 0 end ) as 太郎,
sum( case 担当者 when '次郎' then 金額 else 0 end ) as 次郎,
sum( case 担当者 when '三郎' then 金額 else 0 end ) as 三郎
from テーブル
group by to_char(年月, 'yyyy-mm')
order by to_char(年月, 'yyyy-mm')

手探りですが何とか出来ました。
本当にありがとうございました。

お礼日時:2008/09/30 15:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!