У меня есть 2 таблицы, и я хочу оставить таблицу B присоединения к A на основе определенных критериев
Объединение основано на 'ID' (a.ID = b.ID), но я хочу добавить только 2 столбца 'status_date' и 'flag_y' из таблицы B, если b.status_date> = a.date
Таблица A:
+------------+-----+--------+
| date | ID | Flag_x |
+------------+-----+--------+
| 01/03/2019 | 100 | x |
| 01/03/2019 | 101 | x |
| 02/03/2019 | 102 | x |
| 02/03/2019 | 103 | x |
+------------+-----+--------+
Таблица B:
+-------------+---------+--------+
| status_date | field_x | Flag_y |
+-------------+---------+--------+
| 15/03/2019 | 100 | y |
| 10/01/2019 | 102 | y |
+-------------+---------+--------+
Желаемый выход:
+------------+-----+--------+-------------+--------+
| date | ID | Flag_x | status_date | Flag_y |
+------------+-----+--------+-------------+--------+
| 01/03/2019 | 100 | x | 15/03/2019 | y |
| 01/03/2019 | 101 | x | | |
| 02/03/2019 | 102 | x | | |
| 02/03/2019 | 103 | x | | |
+------------+-----+--------+-------------+--------+
Код , который я пробовал ниже, удаляет строку для идентификатора 102 в этом случае, когда я хочу сохранить эту строку, но не вводить информацию из таблицы B, так как «status_date» предшествует «date» в таблице A. Я предполагаю, что нужно добавить что-то в предложении where ???
PROC SQL;
Create Table Output As
Select
a.*
,b.status_date
,b.flag_y
From Table_A as a
Left join Table_B as b
On b.ID = a.ID
Where b.status_date is Null or b.status_date >= a.date
;QUIT;
Надеюсь, это имеет смысл, и кто-то может помочь