for XML 関数を使用して一部のデータをピボットしようとしています。私のデータは次のとおりです。
VenNum_A VenNum_B
0001 0002
0001 0003
0001 0004
0005 0006
0005 0007
0005 0008
私は次の結果を得ようとしています:
venNum_A VenNum_B
0001 0002,0003,0004
0005 0006,0007,0008
これまでの私のコード:
; with t as
(
select Distinct
A_VenNum, B_VenNum, SUM(1) as Cnt
From
#VenDups_Addr
Group by
A_VenNum, B_VenNum
)
select distinct
B_Vennum,
A_Vennum =cast(substring((
select distinct
[text()] = ', ' + t1.A_Vennum
from
t as t1
where
t.A_Vennum =t1.A_VenNum
for XML path('')
),3,99) as Varchar(254))
From t
現在、私の結果は、両方の元のフィールドを選択するのと同じです。
また、これが最終目標を達成するための最良の方法ではない場合、私は別の解決策を完全に受け入れています。これが私が知っている唯一の方法です.