- - PR -
select分について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-07-29 17:52
select文で質問があります。
____________________ | 01 | a | a | 001 | ・・・・ | 01 | a | a | 002 | ・・・・ | 01 | a | a | 003 | ・・・・ | 01 | a | a | 004 | ・・・・ | 02 | b | b | 001 | ・・・・ | 02 | b | b | 002 | ・・・・ | 02 | b | b | 003 | ・・・・ | 02 | b | b | 004 | ・・・・ このようなテーブルがありカラム名は 左からcolumn1,2,3,4・・・とします。 column1,2,3,4はプライマリキーです。 このテーブルを使って表示したい結果が 01 a a 001 002 003 004 02 b b 001 002 003 004 とこのようにcolumn1,2,3と一致するcolumn4を 横に表示して1レコードにしたいんですが どのようなselect文を書けば出来るでしょか? よろしくお願いします。 |
|
投稿日時: 2005-08-02 15:12
DB2ですが、
CREATE TABLE V_H_Conv (column1 DEC(2,0) NOT NULL ,column2 CHAR(1) NOT NULL ,column3 CHAR(1) NOT NULL ,column4 DEC(3,0) NOT NULL ); SELECT DIGITS(column1) column1, column2, column3 , MAX(CASE rn WHEN 1 THEN DIGITS(column4) ELSE '' END) || ' ' || MAX(CASE rn WHEN 2 THEN DIGITS(column4) ELSE '' END) || ' ' || MAX(CASE rn WHEN 3 THEN DIGITS(column4) ELSE '' END) || ' ' || MAX(CASE rn WHEN 4 THEN DIGITS(column4) ELSE '' END) || ' ' || MAX(CASE rn WHEN 5 THEN DIGITS(column4) ELSE '' END) column4s FROM (SELECT q.* , ROWNUMBER() OVER(PARTITION BY column1, column2, column3 ORDER BY column4) rn FROM V_H_Conv q) S GROUP BY column1, column2, column3 ORDER BY column1, column2, column3 ; ------------------------------------------------------------------------------ COLUMN1 COLUMN2 COLUMN3 COLUMN4S ------- ------- ------- ------------------- 01 a a 001 002 003 004 02 b b 001 002 003 004 2 record(s) selected. |
|
投稿日時: 2005-08-05 18:24
お答えいただきありがとうございます。
java,db2を使ったシステムで、今はjavaのロジックで何とかやってたんですが 使わせていただきます |
1
