Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Vladsn07 Member Откуда: Российская Федерация Сообщений: 105 |
Имеются 2 таблицы:table1 - Calendar - Календарь дат с 2014 по 2018 гг tDate dateid 29.01.2015 5 30.01.2015 6 31.01.2015 7 table2 - Summary Logdate ComputerID 29.01.2015 56 31.01.2015 56 Необходимо добавить в таблицу Summary те Logdate по ComputerID, если LogDate за определенный день нет. Должно получиться: Logdate ComputerID 29.01.2015 56 30.01.2015 56 31.01.2015 56 Сделал запрос на выборку, но он не выводит ни одного значения: select we_Calendar.tDate, we_SummaryActivities.ComputerId from we_Calendar INNER JOIN we_SummaryActivities ON we_SummaryActivities.LogDate=we_Calendar.tDate where we_Calendar.tDate NOT IN (SELECT we_SummaryActivities.LogDate from we_SummaryActivities GROUP BY we_SummaryActivities.LogDate,we_SummaryActivities.ComputerId) |
26 апр 17, 20:00 [20437596] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
select b.tDate, a.ComputerID from (select distinct ComputerID from we_SummaryActivities) a cross join we_Calendar b where not exists(select 1 from we_SummaryActivities where ComputerID = a.ComputerID and LogDate = b.tDate); |
26 апр 17, 20:22 [20437651] Ответить | Цитировать Сообщить модератору |
Vladsn07 Member Откуда: Российская Федерация Сообщений: 105 |
invm, Немного доработав под себя, добавил дополнительные условия, запрос работает. Но теперь выяснилось, что нужно добавить не с 2014 года, а с даты первого Logdate по определенному computerid, получается, что выберутся и даты до первого появления Logdate |
26 апр 17, 21:25 [20437859] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
and b.tDate >= (select min(LogDate) from we_SummaryActivities where ComputerID = ...) |
||
26 апр 17, 22:05 [20437982] Ответить | Цитировать Сообщить модератору |
Vladsn07 Member Откуда: Российская Федерация Сообщений: 105 |
invm,and b.tDate >= (select min(LogDate) from we_SummaryActivities where ComputerID = s.ComputerID) вроде так к основному условию? |
26 апр 17, 22:13 [20438003] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
Vladsn07, Да. |
26 апр 17, 22:19 [20438019] Ответить | Цитировать Сообщить модератору |
Vladsn07 Member Откуда: Российская Федерация Сообщений: 105 |
invm, Большое спасибо, идем дальше... |
26 апр 17, 22:26 [20438035] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |