我该如何整合这些SQL行?

时间:2018-06-03 00:20:28

标签: sql sql-server windows tsql

我们说我有一张简单的表格:

CREATE TABLE [dbo].[Lease]
(
    [unitcode] [NVARCHAR](50) NOT NULL,
    [chargecode] [NVARCHAR](50) NOT NULL,
    [Jan] [INT] NULL,
    [feb] [INT] NULL,
    [mar] [INT] NULL
) ON [PRIMARY]
GO

INSERT INTO Lease (UNITCODE, CHARGECODE, JAN, FEB, MAR)
VALUES (001, 'RENT', 100, null, null),
       (001, 'RENT', null, 200, null),
       (001, 'RENT', null, null, 300),
       (001, 'PARKING', 50, 50, 50);

我正在努力巩固租金'列成一行 - 此行将显示jan,feb和mar的所有非空值。有关如何做到这一点的任何想法?

这是当前的输出:

enter image description here

这是我想要实现的目标:

enter image description here

谢谢你, 阿西

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找一个简单的聚合和分组依据

假设您想要RENT作为顶线,我添加了条件排序。

示例

Select unitcode
      ,chargecode
      ,Jan = sum(Jan)
      ,Feb = sum(Feb)
      ,Mar = sum(Mar)
 From lease
 Group By unitcode
         ,chargecode
 Order By unitcode
         ,case when chargecode='Rent' then 0 else 1 end
         ,chargecode

<强>返回

unitcode    chargecode  Jan Feb Mar
1           RENT        100 200 300
1           PARKING     50  50  50