J'ai la requête SQL suivanteLa colonne '638' a été spécifiée plusieurs fois pour 'PVT'. Pivot
Select Product_Id, [riy] AS [riy],
[eas] AS [eas]
FROM
(SELECT Product_Id, Store_Name, Quantity
FROM [Product_Stock] INNER JOIN Store on Store.Id = [Product_Stock].Stock_Id where Product_Id = 435) ps
PIVOT
(
SUM(Quantity)
FOR Store_Name IN
([riy],[EAST WAREHOUSE - eas])
) AS pvt
lui donne l'attendu me result.Giving quantité totale pour les emplacements RIY et eas.
Toutefois, je souhaite obtenir dynamiquement les noms Store au lieu de les spécifier manuellement.
c'est ce que j'ai fait.
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT ',' + QUOTENAME([Product_Id])
FROM [Product_Stock]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
SELECT @query =
'SELECT Product_Id FROM
(SELECT Product_Id, Store_Name, Quantity
FROM [Product_Stock] INNER JOIN Store on Store.Id = [Product_Stock].Stock_Id where Product_Id = 435) PS
PIVOT
(
SUM(Quantity)
FOR Store_Name in (' + @cols + ')
) AS PVT'
EXEC SP_EXECUTESQL @query
Cela me donne une erreur disant La colonne '638' a été spécifié à plusieurs reprises pour 'PVT'.
Comment puis-je résoudre ce problème?
Vous avez eu une meilleure lecture de son problème. Vous n'avez pas vu le problème de produit/magasin. –