SQL Server 2012を使用していて、問題に近づける最善の方法が不明です。これは私のデータです:SQL Serverアレイまたは動的なフィールドの見出しまたはピボット
Item Size SortOrder Qty
ABC XS 1 0
ABC S 2 8
ABC M 3 4
ABC L 4 3
ZXY 1 1 10
DEF 6 1 5
DEF 8 2 4
DEF 10 3 7
DEF 12 4 6
QWE 1 1 5
はしかし、私は、グリッド形式で提示する必要があり、サイズを動的に見出しとして変更する必要があります。
ABC XS S M L
Qty 0 8 4 3
ZXY 1
Qty 10
DEF 6 8 10 12
Qty 5 4 7 6
QWE 1
Qty 5
はまた、私は適切なサイズに数量を割り当てる必要がありますソート順の順に常に左から右に表示する必要があります。
どのような方法が最適でしょうか?配列を作成するか、ピボットで上記を達成できますか?
ありがとうございました。
私は以下を使用して旋回するが、エラー「無効な列名 『項目』を受信し続けるためにしようとしました:
DECLARE @SizeColums VARCHAR(MAX)
SELECT @SizeColums = COALESCE(@SizeColums + ',','') + QUOTENAME([Size])
FROM vw_SizeSeq
GROUP BY [Size]
DECLARE @Sql NVARCHAR(MAX) = N'
SELECT Item,
[Types],' +
@SizeColums + '
FROM (SELECT * FROM vw_SizeSeq
) t
UNPIVOT (
[Type]
FOR [Types] IN ([Item])) up
PIVOT (
MAX([Type])
FOR [Size] IN (' + @SizeColums + ')
) p
'
EXEC sp_executesql @sql;
SQLでは、結果はテーブル形式でしか作成できませんが、期待どおりの結果が得られます。このためのアプリケーション層を試してください –
彼らはピボットとピボットを解除する方法でなければなりません – Michael
あなたの期待結果フォーマットを理解できないかもしれません。あなたはそれをもう少し明確にすることができますか? –