Après avoir répondu à bon nombre de ces questions au fil des ans en générant un pivot SQL dynamique à partir des métadonnées, jetez un œil à ces exemples :
SQL Dynamic Pivot - comment ordonner les colonnes
Pivot SQL Server 2005 sur un nombre de colonnes inconnu
Quelle requête ou vue SQL affichera des "colonnes dynamiques"
Comment pivoter sur les attributs d'une colonne XML dans T-SQL
Comment appliquer le principe DRY aux instructions SQL qui pivotent les mois
Dans votre cas particulier (en utilisant le pivot ANSI au lieu de la fonction PIVOT de SQL Server 2005) :
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)