こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

縦持ちになっているデータを横持ちにしたいのですが

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

ご教授の程、宜しくお願い致します。

投稿日時 - 2013-11-28 22:43:59

QNo.8365998

すぐに回答ほしいです

質問者が選んだベストアンサー

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関数ですね。

投稿日時 - 2013-12-03 00:37:52

お礼

ありがとうございます。そのままでは動きませんでしたが、For_XML_Pathを使用することにより解決することができました。

投稿日時 - 2013-12-13 11:55:57

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-