下のリンクに従ってください。クロス・アプライの中で私たちがやっていることの日付メモ。
私もパートを想定してい
がそうでなければ、我々は/巣を適用する必要があるだろう、ROW_NUMBER()
例ビルド内のシーケンシャルである
Declare @SQL varchar(max) = '
Select *
From (
Select A.Build
,B.*
From YourTable A
Cross Apply (values (concat(''Part'',A.Part,''SN''), concat('''',A.SN))
,(concat(''Ship'',A.Part,''Ship''),concat('''',A.DateShipped))
) B (Item,Value)
) A
Pivot (max([Value]) For [Item] in (' + Stuff((Select ','+QuoteName(concat('Part',Part,'SN'))
+','+QuoteName(concat('Ship',Part,'Ship'))
From (Select Distinct Part From YourTable) A
Order By 1
For XML Path('')),1,1,'') + ')) p'
Exec(@SQL)
--Print @SQL
戻り
生成されたSQLは、あなたが*条件付きの集約を使用して、または*されているRDBMSによってサポートされている場合、 `PIVOT`を使用してそれを行うことができます。この
Select *
From (
Select A.Build
,B.*
From YourTable A
Cross Apply (values (concat('Part',A.Part,'SN'), concat('',A.SN))
,(concat('Ship',A.Part,'Ship'),concat('',A.DateShipped))
) B (Item,Value)
) A
Pivot (max([Value]) For [Item] in ([Part1SN],[Ship1Ship],[Part2SN],[Ship2Ship],[Part3SN],[Ship3Ship])) p
のように見えます。ここにはたくさんの例があります。 –