
いつもこちらではお世話になっております。
SQL server を使用しています。
データを整理したいのですが、スクリプトが分からないため質問させてください。
下記のようなデータがあります
(codeと購入品そのものは直接のリンクはしていません)
客id 購入品 code1 code2 code3 code4
A 桃 0 1 0 0
A 苺 1 0 0 0
A 梨 0 0 1 0
B 梨 1 0 0 0
B 苺 0 0 0 1
C 桃 1 0 0 0
これを、最終的には客idで1行にしたいです(下記のように)。
(「購入品」の列は消えても構いません)
(nullではなく0でも可)
客id code1 code2 code3 code4
A 苺 桃 梨 null
B 梨 null null 苺
C 桃 null null null
これをSQLで指令を出す場合、
1 code1 が1の場合、「code1 に『購入品』を置き換える」
code2が1の場合、「code2に『購入品』を置き換える」
code4まで繰り返す
2 客idで統合(group by?)
という流れだと思うのですが、どういったスクリプトを書けばいいのか分かりません。
(同じ客で、codeが重複することはありません)
手間がかかるやり方でも構いませんので、最終的に客idで1行が作れれば大丈夫です。
詳しい方、よろしくお願いします。

No.1ベストアンサー
- 回答日時:
SELECT 客id
, MAX(CASE code1 WHEN 1 THEN 購入品 END) AS code1
, MAX(CASE code2 WHEN 1 THEN 購入品 END) AS code2
, MAX(CASE code3 WHEN 1 THEN 購入品 END) AS code3
, MAX(CASE code4 WHEN 1 THEN 購入品 END) AS code4
FROM テーブル
GROUP BY 客id
ORDER BY 客id
ってな感じかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル名が可変の動的SQLをフ...
-
CPRM decrypterのエラーコード...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
フラグをたてるってどういうこ...
-
SQLサーバに対するSQL文で抽出...
-
改行を含んだデータのインポート
-
プログラムよりファンクション...
-
オラクルのUPDATEで複数テーブル
-
エラーを起こす方法
-
追加クエリで重複データなしで...
-
Accessの構成をコピーしたい
-
selectの単純繰り返し
-
SQLです!!教えてください。あ...
-
SQLです!!教えてください。あ...
-
「総降水量が100mm以上になる...
-
複数行の結果を単一列に連結
-
あってますか?SQL
-
MySQLで改行を含んだ文を登録し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名が可変の動的SQLをフ...
-
SQLでTableが作れないlol
-
実行時エラー:2517 プロシージ...
-
定義域関数の抽出と連結表示に...
-
CPRM decrypterのエラーコード...
-
教えてください
-
Activation codeとは
-
オシロスコープYOKOGAWA DL708...
-
Access97のクエリー(sql文)につ...
-
Access2000のDLOOKUPについて
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
SQLサーバに対するSQL文で抽出...
-
UPDATEで既存のレコードに文字...
-
エラーを起こす方法
-
truncate tableを使って複数の...
-
既存データをINSERT文にして出...
-
timestampのデータはどのように...
おすすめ情報