
SQLServser2012で縦持ちになっているデータを横持ちにしたいのですが、どうしたらよいでしょうか?
〇以下のように現在、テーブル設計されております。
請求TBL
---------------------------------------------
請求ID 請求先名
001 田中 太郎
002 鈴木 一郎
注文TBL
------------------------------------------------
請求ID 注文ID 発送先 商品ID 個数
001 001 田中 太郎 A 10
001 002 佐藤 次郎 A 5
002 003 鈴木 一郎 B 3
商品TBL
-----------------------------
商品ID 商品名
A みかん
B りんご
このデータを以下のような結果として得たいのですが、どのようにしたらSQLを作成したらよろしいでしょうか?
請求ID 請求先 商品内容
-------------------------------------------------
001 田中 太郎 みかん*10、みかん*5
002 鈴木 一郎 りんご*3
ご教授の程、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
SELECT
tbl_1."請求ID"
, tbl_1."請求先名 "
, (Select
' ' + tbl_3."商品名" + "*" + "個数 "
From "注文TBL" tbl_2
Left Join "商品TBL" tbl_3
On tbl_2."商品ID" = tbl_3."商品ID"
WHERE tbl_1."請求ID"= tbl_2."請求ID"
For_XML_Path('')) as "商品名"
FROM "請求TBL" tbl_1
こんな感じだったかな~。コード検証はしていません!
For_XML_Pathで言うならば文字列の結合GroupByになったはずです。
MySQLでいう、group_concat関数ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複していないレコードの抽出...
-
フィルターかけた後、重複を除...
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
差し込み後、元データを変更し...
-
SQLで特定の項目の重複のみを排...
-
SQLで列名を変数にできないでし...
-
エクセルで最後の文字だけ置き...
-
Outlook 送受信エラー
-
エクセルの関数について教えて...
-
SQLServerで文字列の末尾からあ...
-
カーソル0件の時にエラーを発生...
-
datetime型でNULL値を入れたい。
-
for whichの使い方
-
INSERT文でフィールドの1つだ...
-
Access:クエリーにて集計後に...
-
[MySQL] UNIQUE制約の値を更新...
-
access2021 VBA メソッドまたは...
-
列番号による項目の取得について
-
SQL Date型の列から年月だけを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複していないレコードの抽出...
-
IDの採番について
-
mysqlで連結先のテーブルをカウ...
-
合計点順にソートかつ同一人の...
-
int(11)の(11)とは何を意味して...
-
mysqlのsql文について質問です
-
チェックボックスからの受け渡...
-
MySQL 文字列の部分一致の書き方
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
Outlook 送受信エラー
-
エクセルの関数について教えて...
-
for whichの使い方
-
EXISTSを使ったDELETE文
-
INSERT文でフィールドの1つだ...
-
access2021 VBA メソッドまたは...
おすすめ情報