我正在使用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中,我們只能以表格格式生成結果,但您的預期結果看起來有所不同。嘗試應用層爲這個 –
他們必須是一種方式樞軸和unpivot – Michael
可能是不理解您的預期結果格式。你能否讓它更清晰 –