我们说我有一张简单的表格:
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的所有非空值。有关如何做到这一点的任何想法?
这是当前的输出:
这是我想要实现的目标:
谢谢你, 阿西
答案 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