Я хотел бы добиться следующего: Для каждого клиента (custID) в таблице A получите trade_date и найдите максимальную дату создания, которая меньше или равна trade_date (на основе клиента как совпадающего поля).Получите оценку для конкретной максимальной даты создания записи и присоединитесь к таблице A (которая является необходимой таблицей C)
Trade_Table A:
CustID | Trade_date | Trade_ID
12345 | 30/7/2018 | 4axd
12345 | 30/7/2018 |
12345 | 31/7/2018 | 5FETF
12345 | 05/9/2018 | fst43d
12366 | 01/8/2018 | g3fgg
12377 | 01/9/2018 | dfd45
Risk_Rating_Table B:
CustID | Create_date | Rating
12345 | 29/7/2018 | 2
12345 | 30/7/2018 | 3
12345 | 31/7/2018 | 4
12345 | 01/9/2018 | 1
12366 | 30/7/2018 | 1
12377 | 31/9/2018 | 5
Final_Table C:
CustID | Trade_date | Trade_ID | Rating
12345 | 30/7/2018 | 4axd | 3
12345 | 30/7/2018 | | 3
12345 | 31/7/2018 | 5FETF | 4
12345 | 05/9/2018 | fst43d | 1
12366 | 01/8/2018 | g3fgg | 1
12377 | 01/9/2018 | dfd45 |
Я пробовал много способов, и это один из них, но я получил более 1 строки возвращаемой ошибки.Это сложнее, чем я думал.
proc sql;
create Final_Table C as select
A.*,
(select max(B.Create_date) FROM Risk_Rating_Table B where A.trade_date >= B.Create_date
group by B.CustID
) as Rating
from
Trade_Table A
;
QUIT;