SQL для отображения данных текущего месяца и следующего месяца из таблицы - PullRequest
0 голосов
/ 22 октября 2019

Я хотел получить руководство по созданию SQL-запроса, который собирает информацию о таблицах текущей даты, а также следующего месяца, без необходимости вводить каждый день для текущего месяца, являющегося октябрем, или следующего месяца, являющегося ноябрем.

В основном у меня есть таблица с именем WORK, в этой таблице есть SHIFTID, DATEOFSHIFT и MEMBERSHIPID. Мне в основном нужно перечислить SHIFTID смен, где MEMBERSHIPID = null и где DATEOFSHIFT находится в ноябре (следующий месяц)

Затем мне нужно создать запрос для списка смен, показывающий SHIFTID, DATEOFSHIFT и MEMBERSHIPID каждой сменыв текущем месяце.

Это структура моей таблицы базы данных, если необходимо.

enter image description here

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Я бы порекомендовал:

select w.*
from work w
where w.membershipid is null and
      w.dateofshift >= trunc(sysdate, 'Month') + interval '1' month and
      w.dateofshift < trunc(sysdate, 'Month') + interval '2' month;

Вы также можете написать where как:

where w.membershipid is null and
      trunc(w.dateofshift, 'Month') >= trunc(sysdate, 'Month') + interval '1' month 

, но это затрудняет использование Oracle для индекса, если он уместенесть в наличии.

0 голосов
/ 22 октября 2019

Итак, из того, что вы предоставили, я предполагаю, что вы хотите, чтобы запрос отображал информацию по всем этим полям за текущий месяц. Этого можно достичь:

Select SHIFTID, DATEOFSHIFT, MEMBERSHIPID
From WORK
Where Month(DATEOFSHIFT)=MONTH(GETDATE());
...