Мне нужно найти общее количество клиентов, созданных после определенной даты, которые еще не заказали.
У меня есть две таблицы:
| customers | // There's more to this but this is all
+----+------+---------+ // you need to answer this question
| ID | Name | Created |
+----+------+---------+
| orders | // There's more to this but this is all
+----+-------------+ // you need to answer this question
| ID | customer_id |
+----+-------------+
Мне нужно найти общее количествоколичество клиентов, созданных после определенной даты, которые еще не заказали.
Это то, что я сделал:
SELECT Count(*)
FROM customers
LEFT JOIN orders ON customers.ID = orders.customer_id
WHERE customers.Created > #arbitrary date#
AND orders.ID Is Null;
Я уверен, что это правильно, но, похоже, это не такприносить правильные результаты.Под этим я подразумеваю, что мой начальник смотрит на результаты и говорит мне, что по опыту количество новых клиентов, не регистрирующих заказы, намного больше, чем этот запрос.
Так что я делаю это правильно?Если да, мне явно нужно посмотреть, что еще может быть причиной проблемы.Спасибо.
РЕДАКТИРОВАТЬ 1
Комментарий ниже предполагает, что orders.id
не может быть обнуляемым.Это может иметь место, однако я получаю те же результаты, если проверяю, orders.customer_id Is Null
.
РЕДАКТИРОВАТЬ 2
Я не хотел переусердствовать, но этоможет быть полезно, если вы знаете, что я делаю это в базе данных Access, поэтому я не могу использовать все вкусности, которые позволяет стандартный SQL.(Я редактировал теги)