Поиск идентификаторов из 1 таблицы и поиск тех же идентификаторов из другой таблицы с условиями времени SQL - PullRequest
0 голосов
/ 12 марта 2019

У меня есть два стола. Информация о клиенте и таблица транзакций (уровень транзакции, а не уровень клиента).

Таблица клиентов:

  • ID
  • Созданный сезон (т.е. 2012-2013)

Таблица транзакций: - Я бы - Дата транзакции (т.е. 2012-01-02 15:33:06)

Первый вопрос:

Я хочу выяснить, сколько отдельных клиентов в текущем сезоне (2017-18 гг.) Не заключили сделки с января 2019 г.

Второй вопрос:

Я хочу выяснить, сколько отдельных клиентов в текущем сезоне (2017-18) не осуществили операции с января 2018 года.

Третий вопрос:

Я хочу узнать, сколько разных клиентов в текущем сезоне (2017-18) никогда не совершали сделки.

Мой код

SELECT count(distinct a.id), a.season
From(
Select a.id, a.season
From customer as a 
Join transaction as b
On a.id = b.id
Where a.created season = '2017-18' and MAX(b.transaction_date) < '2019-02-01')
Group by 2

Спасибо

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете сделать это с помощью подзапроса not exists:

select count(*)
from customers c 
where c.season = '2017-2018' and
      not exists (select 1
                  from transactions t
                  where t.id = c.id and t.transaction_date >= '2019-01-01'
                 );

Все три ваших запроса имеют одинаковый формат.

...