sql表行-列转换

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

我有以下表格:

如何将上表转换为下表结构?我尝试使用pivot表,但无法使其工作


你需要查一下

检查

以及守则:

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更新您的标记。您能给出解决方案吗?