У меня есть три таблицы. Ссылка "Люди, активность и активность"
Я пытаюсь перечислить всех людей и их распределение для действия "a3" в течение указанной даты. Многократные распределения должны быть перечислены. Люди без распределения должны быть указаны как Null , но активность должна быть указана.
Условия:
- Дата: 04.10.10 2019 должно быть между началом и концом.
- Где people_id! = P4
-SQL Server или эквивалентный trans-sql, mysql и т. Д.
Таблица людей:
+-----------+
| people_id |
+-----------+
| p1 |
| p2 |
| p3 |
| p4 |
| p5 |
+-----------+
Таблица активности:
+------------------+-----------+
| activity_type_id | name |
+------------------+-----------+
| a1 | monday |
| a2 | tuesday |
| a3 | wednesday |
| a4 | thursday |
| a5 | friday |
+------------------+-----------+
* 1024Таблица активности:
+-------------------------+--------+----------+------------+------------+
| activity_people_link_id | people | activity | start | end |
+-------------------------+--------+----------+------------+------------+
| 1 | p1 | a1 | 03/10/2019 | 10/10/2019 |
| 2 | p1 | a3 | 02/10/2019 | 10/10/2019 |
| 3 | p2 | a4 | 02/10/2019 | 10/10/2019 |
| 4 | p2 | a2 | 01/10/2019 | 01/12/2019 |
| 5 | p3 | a3 | 01/06/2019 | 01/07/2019 |
| 5 | p4 | a3 | 01/01/2019 | 20/12/2020 |
| 6 | p5 | a3 | 01/01/2017 | 20/12/2020 |
| 7 | p5 | a3 | 20/03/2017 | 20/10/2019 |
+-------------------------+--------+----------+------------+------------+
Результаты:
+-----------+----------+------------+------------+
| people_id | activity | start | end |
+-----------+----------+------------+------------+
| p1 | a3 | 02/10/2019 | 10/10/2019 |
| p2 | a3 | null | null |
| p3 | a3 | null | null |
| p5 | a3 | 01/01/2017 | 20/12/2020 |
| p5 | a3 | 20/03/2017 | 20/10/2019 |
+-----------+----------+------------+------------+