Доступ SQL - Где совпадают несколько дат - PullRequest
1 голос
/ 26 марта 2020

У меня есть следующая таблица Access под названием «Продукты»

REF         DATE               DAYS
12345       26/03/2020         55
12345       26/03/2020         55
12345       20/03/2020         50
12345       30/06/2020        100
98765       05/02/2020         70
98765       05/02/2020         70
98765       10/04/2020         91

Мне нужно создать запрос SQL в Access, который дает вывод, в котором перечислены все уникальные REF, а затем столбец YES / NO , Результат - ДА, если все значения ДАТА являются одной и той же датой для записей, где ДНИ <= 90 дней. Если какая-либо из дат отличается для записей, где DAYS <= 90, тогда вывод должен быть NO. </p>

Меня не интересуют даты, где значение DAYS больше 90.

Для приведенного выше примера, результат будет:

REF       SAME_DATE
12345     No
98765     Yes

1 Ответ

1 голос
/ 26 марта 2020

В MS Access вы можете использовать агрегирование для вычисления флага, а затем JOIN:

select p.*, nz(flag, 'NO')
from products as p left join
     (select pp.ref, 'YES' as flag
      from products as pp
      where p2.days <= 90
      group by pp.ref
      having min(date) = max(date)
     ) as pp
     on pp.ref = p.ref;

РЕДАКТИРОВАТЬ:

Если вы хотите одну строку на ссылку, это очень проще:

select ref,   
       iif(min(date) = max(date), "Yes", "No") as same_date
from products
where days <= 90
group by ref;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...