sql - 如何合并此 SQL 行?
问题描述
假设我有一个简单的表:
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 的所有非空值。关于我如何做到这一点的任何想法?
这是当前的输出:
这是我想要实现的目标:
谢谢你,阿西夫
解决方案
我认为您正在寻找一个简单的聚合和 Group By
假设您希望 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
推荐阅读
- python-3.x - 代码没有被执行,程序跳出循环,等待另一个命令
- java - 从带有两个参数java的方法创建新数组
- performance - 为什么浮点除法比c ++中的整数除法快?
- scala - 无法调用 DecisionTreeClassifier.train()
- sql - 多个计数(表上的0
- javascript - 为什么相同的 HSM 密钥每次都验证到不同的以太坊地址?
- android - 使用 ConstraintLayout 中具有纵横比的视图填充剩余空间
- c# - 在 C# 中添加单选按钮和评级视图
- c# - 如何在利用 orchard CMS 的 Web 应用程序中使用多个数据库?我应该如何在 settings.txt 文件中指定相同的数据库?
- python - 为什么在使用列表推导而不是生成器表达式时更新列表更快?