【发布时间】:2021-03-04 02:02:07
【问题描述】:
我有下一个数据集(仅使用黄色单元格)。只考虑周到,例如获取列 iemitidos:
下一张图片有我需要的结果:
【问题讨论】:
-
请不要使用图片显示表格,并且是您唯一的表格信息来源,请使用纯文本或表格降价并包含一些DDL。
我有下一个数据集(仅使用黄色单元格)。只考虑周到,例如获取列 iemitidos:
下一张图片有我需要的结果:
【问题讨论】:
我无法发明任何更聪明的东西(对于 MS SQL)。这对你有用吗?
declare
@t table (f1 varchar (20), dt date, f2 int, f3 int, f4 int)
insert into @t
values
('ACS1', '2021-09-01',1727, 938, 0),
('ACS2', '2021-09-01',1513, 676, 0),
('ACS1', '2021-09-10',1759, 326, 10),
('ACS2', '2021-09-10',1524, 265, 15)
;with cte
as (
select row_number() over (partition by f1 order by (select dt)) rn, * from @t
)
select
t1.f1, t1.f2, t2.f2, t1.f3, t2.f3, t1.f4, t2.f4
from cte t1
cross join cte t2
where t1.f1=t2.f1
and t1.f2!=t2.f2
and t1.rn=1
输出:
f1 f2 f2 f3 f3 f4 f4
ACS1 1727 1759 938 326 0 10
ACS2 1513 1524 676 265 0 15
【讨论】: