Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多行到一行sql_Sql_Sql Server - Fatal编程技术网

多行到一行sql

多行到一行sql,sql,sql-server,Sql,Sql Server,我有一张桌子如下: 我希望查询以如下方式打印输出: 注意:请不要投反对票。我知道张贴答案的规则,但对于这类问题,没有机会张贴简短的答案。我发布它只是为了帮助那个些想知道如何实现这一点的人,但不希望看到现成的解决方案 我建议阅读以下文章: 首先解除锁定,然后旋转。如果每个Pod_ID的行数并不总是等于3,则需要使用动态SQL。基本样本: SELECT * FROM ( SELECT Pod_ID, Purs + CASE WHEN RN-1 = 0 THEN

我有一张桌子如下:

我希望查询以如下方式打印输出: 注意:请不要投反对票。我知道张贴答案的规则,但对于这类问题,没有机会张贴简短的答案。我发布它只是为了帮助那个些想知道如何实现这一点的人,但不希望看到现成的解决方案

我建议阅读以下文章:


首先解除锁定,然后旋转。如果每个Pod_ID的行数并不总是等于3,则需要使用动态SQL。基本样本:

SELECT *
FROM (
    SELECT  Pod_ID,
            Purs + CASE WHEN RN-1 = 0 THEN '' ELSE CAST(RN-1 as nvarchar(10)) END as Purs,
            [Values]
    FROM (
        SELECT  Pod_ID, 
                Pur_Qty, --All columns that will be UNPIVOTed must be same datatype
                Pur_Price, 
                CAST(ETD_Date as int) ETD_Date, -- that is why I cast date to int
                ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as RN
        FROM YourTable
        ) as p1
    UNPIVOT (
        [Values] FOR [Purs] IN(Pur_Qty, Pur_Price, ETD_Date)
    ) as unpvt
    ) as p2
PIVOT (
    MAX([Values]) FOR Purs IN (Pur_Qty,Pur_Price,ETD_Date,Pur_Qty1,Pur_Price1,ETD_Date1,Pur_Qty2,Pur_Price2,ETD_Date2)
) as pvt 
将为您带来:

Pod_ID                                  Pur_Qty Pur_Price   ETD_Date    Pur_Qty1    Pur_Price1  ETD_Date1   Pur_Qty2    Pur_Price2  ETD_Date2
F8E2F614-75BC-4E46-B7F8-18C7FC4E5397    24      22          20160820    400         33          20160905    50          44          20160830

欢迎加入。你试过什么?你被困在哪里?请参考:这3行的Pod_ID是否相同?如果突然出现具有相同id的第四行,预期结果是什么?是,这三行的Pod_id相同。我想查询动态,如果有第四行将显示采购数量3,采购价格3,等等日期3。