hello, i am stuck and need some help to generate output based on the below scenario
if object_id(N'tempdb..#t1') is not null
DROP TABLE #t1
if object_id(N'tempdb..#t2') is not null
DROP TABLE #t2
create table #t1
(
userid int,
maildate date
)
insert into #t1
select
1, '2021-05-04'
union select 1, '2021-04-13'
union select 1, '2020-11-03'
union select 1, '2020-10-30'
select * from #t1
create table #t2
(
userid int,
addr varchar(50),
addr_update_dt date
)
insert into #t2
select 1,'teaneck ,NJ' , '2021-08-27'
union select 1,'teaneck ,NJ' , '2021-06-12'
union select 1,'teaneck ,NJ' , '2021-04-13'
union select 1,'teaneck ,NJ' , '2021-02-13'
union select 1,'teaneck ,NJ' , '2020-10-06'
union select 1,'teaneck ,NJ' , '2020-09-26'
union select 1,'teaneck ,NJ' , '2020-09-26'
UNION SELECT 1, 'CARY,NC', '2015-06-23'
--expected output for mail date provide the nearst match date
--userid , mail_date, adr_update_dt
select 1 as useid, '2021-05-04' as mail_date,'2021-04-13' as adr_update_dt
union select 1, '2021-04-13','2021-02-13'
union select 1, '2020-11-03','2020-10-06'
union select 1, '2020-10-30','2020-09-26'
SELECT T1.userid, T1.maildate, X.addr_update_dt
FROM #t1 T1
CROSS APPLY
(
SELECT TOP (1) T2.addr_update_dt
FROM #t2 T2
WHERE T2.userid = T1.userid
AND T2.addr_update_dt < T1.maildate
ORDER BY T2.addr_update_dt DESC
) X
ORDER BY maildate DESC;
Viewing 2 posts - 1 through 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy