Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 SQL запрос  [new]
Molasar
Member

Откуда:
Сообщений: 700
Всем привет!

Нужен запрос SQL, который выберет все client_id, где dt = 17.12.2018 и кол-во client_id не менее 3-х.
Т.е. нужно выбрать тех клиентов, кто создал 17.12.2018 не менее 3-х любых документов.
Таблица Docs:
-----------------------------------------------------------------------------------------------------
|        id         |      type_id      |     client_id     |     doc_name      |        dt         |
-----------------------------------------------------------------------------------------------------
|                 1 |                 1 |                 1 | Doc1              |        17.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 2 |                 2 |                 1 | Doc2              |        17.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 3 |                 1 |                 1 | Doc3              |        17.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 4 |                 1 |                 2 | Doc4              |        17.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 5 |                 2 |                 2 | Doc5              |        17.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 6 |                 1 |                 2 | Doc6              |        16.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 7 |                 1 |                 3 | Doc7              |        16.12.2018 |
-----------------------------------------------------------------------------------------------------
|                 8 |                 2 |                 3 | Doc8              |        17.12.2018 |
18 дек 18, 00:00    [21766488]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6005
Molasar,
SELECT Docs.client_id, Count(Docs.client_id) AS числоДокументов, Docs.dt
FROM Docs
GROUP BY Docs.client_id, Docs.dt
HAVING (((Count(Docs.client_id))>=3) AND ((Docs.dt)=#12/17/2018#));
18 дек 18, 01:20    [21766505]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19021
sdku, а нафига отбор по дате в HAVING? да и в списке вывода, и соответственно в выражении группировки, дата вроде как не нужна...
18 дек 18, 09:17    [21766590]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6005
Akina,
Molasar
Т.е. нужно выбрать тех клиентов, кто создал 17.12.2018 не менее 3-х любых документов.
ТС же просит дату-вот она и отбирается
18 дек 18, 09:28    [21766601]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4291
sdku, примерно так

SELECT Docs.client_id
FROM Docs
WHERE Docs.dt=#12/17/2018#
GROUP BY Docs.client_id
HAVING Count(Docs.client_id)>2;
18 дек 18, 09:39    [21766608]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6005
Панург,
в моем варианте 4 строчки, а в Вашем аж 5,правда по длине моя одна равна Вашим двум(или даже больше)-какой же вариант выбрать ???....
А можно и так, в 3 строчки:
SELECT client_id,client_id AS числоДокументов, Docs.dt
FROM Docs
WHERE Docs.client_id>=3 AND Docs.dt)=#12/17/2018#
18 дек 18, 10:20    [21766651]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6005
прошу прощения за последний топик-сморозил ерунду с запросом, не подумавши
18 дек 18, 10:24    [21766660]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4291
sdku, дело не в количестве строк в тексте запроса (можно просто всё написать в одну строку), а в оптимальности.

sdku
А можно и так, в 3 строчки:
результат не соответствует ТЗ
18 дек 18, 10:27    [21766669]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить