这里我需要按usr_id顺序排列日期范围。
CREATE TABLE #temp(st_date DATE,end_date DATE,usr_id INT)
INSERT #temp
VALUES ('2007-03-01 ','2015-01-31 ',1),
('2015-02-01 ','2015-05-05 ',1),
('2015-05-06 ','2017-04-01 ',1),
('2007-03-01 ','2014-01-31 ',2),
('2007-03-01 ','2015-01-31 ',3),
('2015-02-01 ','2017-04-01 ',3),
('2020-02-01 ','2020-06-05 ',1),
('2020-06-06 ','2020-08-08 ',1)
SELECT t2.st_date,t1.end_date,t1.usr_id FROM #temp t1 ,#temp t2
WHERE t1.st_date = dateadd(dd,+1,t2.end_date) AND t2.usr_id = t1.usr_id
DROP TABLE #temp
我的回答应该是这样的。
st_date end_date usr_id
2007-03-01 2017-04-01 1
2020-02-01 2020-08-08 1
2007-03-01 2017-04-01 3
2007-03-01 2014-01-31 2
答案 0 :(得分:0)
这应该有效。它首先由usr_id订购,然后在用户分组中订购,按订单排序。
Select * from #temp
Order by usr_id, st_date