Я следующие действия SQL QueryКолонка «638» была указана несколько раз для «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
это дает ожидаемый result.Giving мне общее количество для местоположений RIY и EAS.
Тем не менее, я хочу динамически получить имена Store вместо того, чтобы вручную их указывать.
Это то, что я сделал.
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
Это дает мне ошибку говоря Столбец «638» был указан несколько раз для «PVT».
Как я могу решить эту проблему?
Вы лучше прочитали о своей проблеме. Не видел проблему с продуктом/магазином. –