将两个sql行合并为一个

时间:2018-10-29 11:54:44

标签: sql sql-server

desired output image  data tabel 在PRICE_TYPE = MSRP的数据表中,应将金额添加到msrp列,而PRICE_TYPE = SELP时,应将金额添加到selp列, 我如何编写查询以完成上述任务,谢谢。  第一张图片应该是所需的输出。

2 个答案:

答案 0 :(得分:1)

获得预期结果的一种方法:

select  MATERIAL_NUMBER, [MSRP],[SELP] 
FROM
    (
     SELECT 
          MATERIAL_NUMBER,
          PriceType,
          Sum(Amount)
     FROM Org_table
     GROUP BY  
          MATERIAL_NUMBER,
          PriceType
    ) tbl
    pivot 
    (
     sum(Amount) 
     for PriceType in ([MSRP],[SELP])
    )

希望它会有所帮助:)

答案 1 :(得分:0)

您似乎想获取支点,可以尝试使用条件汇总函数。

CASE WHEN具有聚合功能。

SELECT MATERIAL_NUMBER,
       SUM(CASE WHEN  PRICE_TYPE = 'MSRP' THEN AMOUNT END ) MSRP, 
       SUM(CASE WHEN  PRICE_TYPE = 'SELP' THEN AMOUNT END ) SELP
FROM T
GROUP BY  
        MATERIAL_NUMBER

sqlfiddle

注意

由于您的Amount看起来像是浮点值,因此我使用了一些SUM