メタデータから動的ピボットSQLを生成することにより、長年にわたってこれらの多くに答えてきたので、次の例を見てください。
SQLDynamicPivot-列の順序付け方法
不明な列数でのSQLServer2005ピボット
どのSQLクエリまたはビューに「動的列」が表示されるか
T-SQLでXML列の属性をピボットするにはどうすればよいですか
月をピボットするSQLステートメントにDRY原則を適用する方法
特定の場合(SQL Server 2005のPIVOT機能の代わりにANSIピボットを使用):
DECLARE @template AS varchar(max)
SET @template = 'SELECT
SKU1
{COLUMN_LIST}
FROM
OrderDetailDeliveryReview
Group By
OrderShipToID,
DeliveryDate,
SKU1
'
DECLARE @column_list AS varchar(max)
SELECT @column_list = COALESCE(@column_list, ',') + 'SUM(Case When Sku2=' + CONVERT(varchar, Sku2) + ' Then Quantity Else 0 End) As [' + CONVERT(varchar, Sku2) + '],'
FROM OrderDetailDeliveryReview
GROUP BY Sku2
ORDER BY Sku2
Set @column_list = Left(@column_list,Len(@column_list)-1)
SET @template = REPLACE(@template, '{COLUMN_LIST}', @column_list)
EXEC (@template)