Таблица обновления SQL в зависимости от другой таблицы - PullRequest
0 голосов
/ 23 мая 2018

У меня есть две таблицы и одна (tb1) имеет столбцы даты, завтрака, обеда, ужина, дня недели.Другой (tb2) имеет дату приезда и дату отъезда.

Я хочу обновить номера общественного питания по количеству строк в tb2, которые соответствуют критериям tb1.date is between tb2.arrivaldate and tb2.departuredate.

Что еще больше усложняет ситуацию, так это то, что завтрак и ужин обновляются, только если tb2.dayofweek - будний день, а завтрак и обед обновляются, если день недели - выходные.Обе таблицы являются временными, если это имеет значение.Любая помощь будет оценена!

Вот мои результаты:

1 Ответ

0 голосов
/ 24 мая 2018

Вы не упомянули, с каким видом SQL вы работаете, и в качестве пары комментариев уже не отмечены сценарии таблиц и данных или то, что вы пробовали до сих пор.Тогда это не будет ваш окончательный код, но он должен дать вам представление об одном подходе, который можно использовать для получения нужных вам чисел.

select
    tb1.date, 
    count(tb2.arrivaldate) as breakfast, 
    sum(case when tb1.day_of_week in ('Saturday', 'Sunday') then 1 else 0 end) as lunch, 
    sum(case when tb1.day_of_week not in ('Saturday', 'Sunday') then 1 else 0 end) as dinner
from
    tb1 left join tb2 on tb1.date between tb2.arrivaldate and tb2.departuredate
group by tb1.date

Обратите внимание, что это не совсем так.голова, я не пробовал и не проверял ваши данные;)

...