
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ランキング
-
SQLのエラー(~付近に不適切な...
-
SQL SERVER windows 認証エラー...
-
ACCESS2007 フォーム 「バリア...
-
【SQLサーバ】float型における...
-
sqlserverで集計結果をUPDATEし...
-
sqlで、600行あるテーブルを100...
-
BULK INSERT時のNull許容について
-
インストール可能なISAMド...
-
Accessの重複なしのカウントの...
-
SQL文 複数実行
-
Visuaal Studio Community 2022...
-
【VB.NET】日付型の列にNULLを...
-
<SQL>重複しているデータの場合...
-
Tverは無料でしょうか?
-
枝番と主キーがある複数テーブ...
-
SQL Date型の列から年月だけを...
-
SQLServer2012、FOR XML PATH('...
-
SQLSERVERのデータファイル圧縮...
-
sqlserverで対象のレコードを削...
-
SQLサーバー接続 特定のPCがWin...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複していないレコードの抽出...
-
IDの採番について
-
int(11)の(11)とは何を意味して...
-
縦持ちになっているデータを横...
-
mysqlで連結先のテーブルをカウ...
-
合計点順にソートかつ同一人の...
-
MySQL 文字列の部分一致の書き方
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
SQLで特定の項目の重複のみを排...
-
Outlook 送受信エラー
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SELECT 文 GROUP での1件目を...
-
エクセルの関数について教えて...
-
for whichの使い方
-
1日に1人がこなせるプログラム...
-
UPDATE文のWHERE条件に他のテー...
-
INSERT文でフィールドの1つだ...
-
SQLで列名を変数にできないでし...
おすすめ情報