Узнать Нет пользователей, у которых нет заказа с определенной даты - PullRequest
0 голосов
/ 13 марта 2019

У меня есть две таблицы: клиент и заказ. Я хочу узнать количество клиентов, которые не заказывали с 1 апреля 1996 года, используя запрос. Таблица заказов содержит несколько записей.

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

enter image description here

План заказа и некоторые данные:

enter image description here

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Возвращает количество клиентов, которые разместили один или несколько заказов, но все заказы были меньше указанной даты:

SELECT COUNT(*)
FROM (
    SELECT CustomerID
    FROM orders
    GROUP BY CustomerID
    HAVING MAX(OrderDate) < '1996-04-01'
) AS x

Если вы хотите включить клиентов, которые разместили 0 заказов, используйте:

SELECT (
    SELECT COUNT(*)
    FROM customers
) - (
    SELECT COUNT(DISTINCT CustomerID)
    FROM orders
    WHERE OrderDate >= '1996-04-01'
)
1 голос
/ 13 марта 2019
SELECT COUNT (*) FROM CUSTOMERS
WHERE NOT EXISTS (SELECT 1 FROM ORDERS
WHERE ORDERS.CUST = CUSTOMERS.CUSTOMERID
AND ORDERS.ORDERDATE >= "1996-04-01");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...