XML パスを使用して SQL 連結を実行しようとしていますが、少し問題が発生しています。連結したい値の参照テーブルとして使用されているテーブルが 1 つあります。参照テーブルには 3 つの列があります (M.PROD、S.PROD、および REF NUMB)。
- M.PROD=====>S.PROD======>参照番号
- 1===========> _ ===========>981024583
- 2===========> _ ===========>981024719
- 3===========>ア===========>981024605
- 3===========> B ===========>981024669
- 4===========>ア===========>981024688
- 4===========> B ===========>981024706
- 4===========> C ===========>981024723
- 5===========> _ ===========>981024742
- 6===========> _ ===========>981024742
m.prod と s.prod を使用して Ref Numb 値の参照テーブルを照合するメイン テーブルがあります。私がやりたいことは、メイン テーブルで選択されているものに基づいて Ref Numb 値を連結することです。私が探しているアウトプットはこれです:
- M.Prod======>参照番号
- 1===========>981024583
- 2===========>981024719
- 3===========>981024605、981024669
- 4===========>981024688、981024706、981024723
- 5===========>981024742
- 6===========>981024742
次のクエリを使用しています。
SELECT DISTINCT P.PRODUCT,
(STUFF((SELECT DISTINCT ',' + P1.REFNUMB AS [text()]
FROM PRODUCT P1
WHERE P1.PRODUCT = P.PRODUCT
FOR XML PATH('')), 1, 1, ''))
FROM PRODUCT P
これにより、次の出力が得られます。
- M.Prod======>参照番号
- 1===========>981024583
- 2===========>981024719
- 3===========>981024605、981024669
- 4===========>981024688、981024706、981024723
- 5===========>981024742
- 6===========>981024742
ただし、すべての s.prod がメイン テーブルにない場合があります。したがって、このために次のクエリを使用します。
SELECT DISTINCT P.PRODUCT,
(STUFF((SELECT DISTINCT ',' + P1.REFNUMB AS [text()]
FROM PRODUCT P1
WHERE P1.PRODUCT = P.PRODUCT AND P1.SUBID = P.SUBID
FOR XML PATH('')), 1, 1, ''))
FROM PRODUCT P
このクエリは、次の出力を生成します。
- M.Prod======>参照番号
- 1===========>ヌル
- 2===========>ヌル
- 3===========>981024605
- 3===========>981024669
- 4===========>981024688
- 4===========>981024723
- 5===========>ヌル
- 6===========>ヌル
これらの場合に必要な出力は次のとおりです。
- M.Prod======>参照番号
- 1===========>981024583
- 2===========>981024719
- 3===========>981024605、981024669
- 4===========>981024688、981024723
- 5===========>981024742
- 6===========>981024742
これに対する解決策は大歓迎です、ありがとう。