У меня есть следующая таблица:SQL строка таблицы - преобразование столбца
Как преобразовать таблицу выше в структуре ниже? Я попытался использовать сводную таблицу, но не смог заставить ее работать.
У меня есть следующая таблица:SQL строка таблицы - преобразование столбца
Как преобразовать таблицу выше в структуре ниже? Я попытался использовать сводную таблицу, но не смог заставить ее работать.
Вам нужно иметь, чтобы посмотреть SQL PIVOT.
Проверить this fiddle
И код:
SELECT *
FROM
(
SELECT Prodname,
pcode,
Biiledamt
FROM Product
) p
PIVOT
(
SUM (Biiledamt)
FOR Prodname IN ([Prod1],[Prod2],[Prod3],[Prod4])
) AS pvt
Если вы заранее колонны не знаете, то вы можете check this fiddle, который динамически генерирует столбцы для использования.
Код, который:
DECLARE @cols AS VARCHAR(MAX),
@query AS VARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',[' + Prodname +']'
FROM Product c
FOR XML PATH(''), TYPE
).value('.', 'VARCHAR(MAX)')
,1,1,'')
SET @query =
' SELECT *
FROM
(
SELECT Prodname,
pcode,
Biiledamt
FROM Product
) p
PIVOT
(
SUM (Biiledamt)
FOR Prodname IN (' + @cols + ')
) AS pvt
'
EXEC(@query)
yap, я попробовал использовать PIVOT, я не могу получить его –
Можете ли вы дать решение для этого? –
@ Vignesh Пожалуйста, проверьте мое обновленное решение. –
SQL это только ** язык запросов ** - не продукт базы данных. Для таких вещей нам действительно нужно знать, что ** конкретный продукт базы данных ** вы используете - MySQL? Postgres? Oracle? IBM DB2? SQL Server? Что-то другое?? Пожалуйста, обновите теги соответственно –
Я работаю над SQL Server. –