with a1 ([sign],[date]) as--明細
(
select 1,'2012-01-01' union all
select 1,'2012-02-06' union all
select 1,'2012-05-03' union all
select 1,'2012-06-11' union all
select 1,'2012-09-01' union all
select 2,'2012-02-03' union all
select 2,'2012-04-19' union all
select 2,'2012-04-23'
)
,a2 ([s_sign],[s_date],[s_n]) as
(
select 1,'2012-01-01',2 union all
select 1,'2012-05-03',2 union all
select 1,'2012-09-01',1 union all
select 2,'2012-02-03',3
)
select *
from a1 a
inner join a2 b on a.[sign]=b.[s_sign] and DATEDIFF(day,b.[s_date],a.[date]) between 0 and 90
order by 1,2