sql表行-列转换
我有以下表格: 如何将上表转换为下表结构?我尝试使用pivot表,但无法使其工作sql表行-列转换,sql,sql-server,pivot,Sql,Sql Server,Pivot,我有以下表格: 如何将上表转换为下表结构?我尝试使用pivot表,但无法使其工作 你需要查一下 检查 以及守则: SELECT * FROM ( SELECT Prodname, pcode, Biiledamt FROM Product ) p PIVOT ( SUM (Biiledamt) FOR Prodname IN ([Prod1],[Prod2],[P
你需要查一下 检查 以及守则:
SELECT *
FROM
(
SELECT Prodname,
pcode,
Biiledamt
FROM Product
) p
PIVOT
(
SUM (Biiledamt)
FOR Prodname IN ([Prod1],[Prod2],[Prod3],[Prod4])
) AS pvt
如果您事先不知道这些列,那么可以选择哪个动态生成要使用的列
其代码为:
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)
SQL只是查询语言,而不是数据库产品。对于这样的东西,我们真的需要知道您使用的是什么具体的数据库产品-MySQL?博士后?神谕IBM DB2?SQL Server?还有别的吗??请根据我正在使用SQL Server更新您的标记。您能给出解决方案吗?