У меня есть таблица со списком дат начала и окончания вместе с другой таблицей, которая содержит диапазон дат. Я хочу выяснить, какие из дат в последней таблице не вписываются в диапазон дат в первой. Учитывая этот пример:
Допустимые диапазоны дат
+----------+------------+------------+
| SensorID | StartDate | EndDate |
+----------+------------+------------+
| 1 | 2018-01-01 | 2018-01-08 |
| 1 | 2018-01-10 | 2018-01-13 |
| 1 | 2018-01-14 | 2018-01-17 |
| 1 | 2018-01-21 | 2018-01-31 |
+----------+------------+------------+
Список данных дат
+----------+------------+-------+
| SensorID | Read_Date | Value |
+----------+------------+-------+
| 1 | 2018-01-01 | 100 |
| 1 | 2018-01-02 | 200 |
| 1 | 2018-01-03 | 300 |
| 1 | 2018-01-09 | 400 |
| 1 | 2018-01-10 | 400 |
| 1 | 2018-01-14 | 250 |
| 1 | 2018-01-18 | 300 |
| 1 | 2018-01-18 | 400 |
| 1 | 2018-01-19 | 350 |
| 1 | 2018-01-24 | 400 |
+----------+------------+-------+
Конечным результатом должна быть полная запись из второй таблицы, т. Е.
+----------+------------+-------+
| SensorID | Read_Date | Value |
+----------+------------+-------+
| 1 | 2018-01-09 | 400 |
| 1 | 2018-01-18 | 300 |
| 1 | 2018-01-18 | 400 |
| 1 | 2018-01-19 | 350 |
+----------+------------+-------+
Я думал о том, чтобы найти все записи, которые являются действительными записями, используя BETWEEN
, а затем EXCEPT
из записей из полного набора данных, но он слишком большой. Есть ли способ присоединиться, используя NOT BETWEEN
?