アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

A 回答 (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関数ですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/13 11:55

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

関連するカテゴリからQ&Aを探す