Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти клиентов, не делавших заказов в последний месяц / 14 сообщений из 14, страница 1 из 1
02.03.2016, 07:54
    #39183201
ecofreeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
Добрый день, есть таблица Customers с полями из которых нужны только CustomerID(первичный ключ) и таблица Ordes с полями из которых нужны OrderID(первичный ключ), CustomerID и OrderDate(тип datetime). Собственно вопрос, как вывести клиентов, которые не делали запросов в последний месяц?
...
Рейтинг: 0 / 0
02.03.2016, 08:08
    #39183207
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
ecofreeonСобственно вопрос, как вывести клиентов, которые не делали запросов в последний месяц?Используйте NOT EXISTS
...
Рейтинг: 0 / 0
02.03.2016, 08:10
    #39183209
ecofreeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
alexeyvg,

а можете написать запрос? потому что я пытался разобраться с not exist, но так и не понял как верно его составить
...
Рейтинг: 0 / 0
02.03.2016, 08:48
    #39183229
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
ecofreeonя пытался разобраться с not exist, но так и не понял как верно его составить
Покажите свои попытки, говорите, что непонятно.

Вроде там всё просто, как по русски звучит, так будет и на SQL:
Код: plaintext
1.
2.
3.
Получить поля
Из таблицы Клиенты
Если нет записей в таблице Заказы
При условии, что Дата заказов не старее месяца

Изучите примеры из хелпа, почитайте, там по русски написано, всё понятно.
https://msdn.microsoft.com/ru-ru/library/ms188336(v=sql.120).aspx
...
Рейтинг: 0 / 0
02.03.2016, 13:19
    #39183660
ecofreeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
alexeyvg,
я делал так
SELECT distinct Customers.ContactName,Customers.CustomerID ,Orders.OrderDate
FROM Customers INNER JOIN
Orders ON Customers.CustomerID = Orders.CustomerID
WHERE (Orders.OrderDate > CONVERT(DATETIME, '1998-05-01 00:00:00', 102))
через not exist у меня даже запустить не получилось, так он постоянно подчеркивал красным
...
Рейтинг: 0 / 0
02.03.2016, 13:20
    #39183661
ecofreeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
alexeyvg,

непонятно как составить эти два условия (Если нет записей в таблице Заказы
При условии, что Дата заказов не старее месяца) чтобы sql не ругался
...
Рейтинг: 0 / 0
02.03.2016, 13:29
    #39183678
WarAnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
ecofreeon,

inner на left поменяйте и добавьте условие or Orders.OrderDate is null
...
Рейтинг: 0 / 0
02.03.2016, 13:49
    #39183722
_djХомяГ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
автор таблица Ordes с полями из которых нужны OrderID(первичный ключ), CustomerID и OrderDate(тип datetime).
А что значит "нужны"? Ведь по идее должны выводиться не найденные в Orders записи (то есть поля будут иметь значение NULL значение) Или под этим скрывается что то другое?
...
Рейтинг: 0 / 0
02.03.2016, 15:05
    #39183832
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
ecofreeonСобственно вопрос, как вывести клиентов, которые не делали запросов в последний месяц?
Переформулируем вопрос так: "как найти клиентов, чей последний запрос был больше месяца назад". Теперь он звучит гораздо тривиальнее, не правда ли?..

RTFM GROUP BY, HAVING.
...
Рейтинг: 0 / 0
02.03.2016, 15:14
    #39183847
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
Dimitry SibiryakovecofreeonСобственно вопрос, как вывести клиентов, которые не делали запросов в последний месяц?
Переформулируем вопрос так: "как найти клиентов, чей последний запрос был больше месяца назад". Теперь он звучит гораздо тривиальнее, не правда ли?..

RTFM GROUP BY, HAVING.

А по-моему ту нехер делать

Код: sql
1.
2.
3.
4.
SELECT Customers.ContactName,Customers.CustomerID ,Orders.OrderDate
FROM Customers 
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID AND Orders.OrderDate >= DATEADD(month, -1, GETDATE())
WHERE Orders.CustomerID IS NULL  



А вы, ТС, берите вот эту книжку и читайте её.
http://sql-language.ru/knigi-po-sql/sql-zaprosy-dlya-prostyx-smertnyx.html
...
Рейтинг: 0 / 0
02.03.2016, 15:25
    #39183867
WarAnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
Dimitry SibiryakovecofreeonСобственно вопрос, как вывести клиентов, которые не делали запросов в последний месяц?
Переформулируем вопрос так: "как найти клиентов, чей последний запрос был больше месяца назад". Теперь он звучит гораздо тривиальнее, не правда ли?..

RTFM GROUP BY, HAVING.

неа, вы не учитываете условие что у клиента вообще небыло заказов.
...
Рейтинг: 0 / 0
02.03.2016, 20:28
    #39184258
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
WarAntу клиента вообще небыло заказов.
Тогда он вообще не клиент, а так, место зря в таблице занимает.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.11.2019, 12:21
    #39888991
Sergei21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
a_voronin,

Добрый день не подскажите, как сделать sql запросы на такие сегменты
1. Количество клиентов, заказывающих такси 2 и более раз в сутки.
2. Время от завершения 1-го заказа до создания 2-го заказа.
3. Время от завершения заказа до поступления звонка, по которому была оформлена претензия.
...
Рейтинг: 0 / 0
14.11.2019, 13:11
    #39889039
Remind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти клиентов, не делавших заказов в последний месяц
Sergei21,

1. GROUP BY + HAVING
2. DATEDIFF
3. DATEDIFF
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Найти клиентов, не делавших заказов в последний месяц / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]