Может на самом деле не ответ правильно, без дополнительной информации, но если у вас есть два набора данных и одна строка в день, а также фактические переменные даты, то решение будет примерно таким:
create table finaldsn as
select a.*
, b.*
, a.delivery_date-b.test_date as days
, abs(calculated days) as absdays
, min(calculated absdays)as close
from dsnA as a
full join
dsnB as b
on a.subject=b.id
where a.delivery_date ne . and b.ltest_datebdt ne .
and b.id in (select distinct subject
from dsnA)
group by a.subject, a.delivery_date
having calculated absdays=calculated close
;
quit;
Это из следующего документа: http://www.lexjansen.com/pharmasug/2003/coderscorner/cc001.pdf, который также представляет собой несколько других решений.
Ваш вопрос неполный. Пожалуйста, отредактируйте его, чтобы объяснить структуру данных. Неясно, являются ли эти два разных набора данных или один набор данных, если test_dates находятся в нескольких строках или одной строке с тремя столбцами. Являются ли эти переменные даты или строки? Как вы хотите обрабатывать связи? – Joe