У меня есть 3 таблицы
Таблица 1 Список пользователей, имеющих право на участие в этой программе. Имеет поле CUSTOMER_ID.Этот список содержит несколько записей на пользователя , и все они должны быть включены в окончательные списки, описанные ниже.
Таблица 2 (b) - список наиболее(но не все) пользователи и лучшие времена, чтобы связаться с ними.Он имеет поля:
- USER_ID
- ПОНЕДЕЛЬНИК
- ВТОРНИК
- СРЕДА
- ЧЕТВЕРГ
- ПЯТНИЦА
- СУББОТА
- ВОСКРЕСЕНЬЕ
Таблица 3 - это основной список всех пользователей, который имеет поля:
Мне нужно разделить таблицу 1 на 2 списка:
Список 1 должен быть всеми пользователями (ивсе строки на пользователя) в таблице 1, которые:
- имеют значение в сегодняшнем поле, которое находится в пределах диапазона в таблице 2
(т. е. если сегодня понедельник, включите всепользователи из Таблицы 1, которые имеют значение между 6 и 23 в поле понедельника из Таблицы 2)
Это то, что у меня есть для первого списка, который, кажется, работает:
SELECT b.USER_ID, b.monday, b.tuesday, b.wednesday, b.thursday,
b.friday, b.saturday, b.sunday FROM $A$ a, $C$ c, $B$ b
WHERE (
TO_CHAR(sysdate, 'D') = 1 AND (b.sunday >= 6 AND b.sunday <= 23) OR
TO_CHAR(sysdate, 'D') = 2 AND (b.monday >= 6 AND b.monday <= 23) OR
TO_CHAR(sysdate, 'D') = 3 AND (b.tuesday >= 6 AND b.tuesday <= 23) OR
TO_CHAR(sysdate, 'D') = 4 AND (b.wednesday >= 6 AND b.wednesday <= 23) OR
TO_CHAR(sysdate, 'D') = 5 AND (b.thursday >= 6 AND b.thursday <= 23) OR
TO_CHAR(sysdate, 'D') = 6 AND (b.friday >= 6 AND b.friday <= 23) OR
TO_CHAR(sysdate, 'D') = 7 AND (b.saturday >= 6 AND b.saturday <= 23) )
AND (c.USER_ID = b.USER_ID AND a.CUSTOMER_ID_ = c.CUSTOMER_ID_)
Список 2 должен включать всех пользователей (и все строки на пользователя) в таблице 1, которые:
- имеют нулевое значение в сегодняшнем поле в таблице 2
- имеют значениевне диапазона (т.е. не между 6& 23)
- В Таблице 2 вообще нет
У меня есть 2 запроса для списка 2, и я не уверен, как их объединить.
Количество записей по этим трем запросам, которые я получаю, больше, чем исходный список, поэтому определенно происходит некоторое совпадение.
Может кто-нибудь подсказать, как мне написать этот второй запрос?