|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
Здравствуйте форумчане! Помогите создать небольшой запрос, пожалуйста! Имеется небольшая таблица во вложении нужно вывести ФИО клиента, который покупал только одну Марку! и более одного раза.. Пример- Покупатели== Код 1 \ ФИО Сидоров КОД 2 \ ФИО Иванов ============ Марка===== Код 1 \Марка Лада Код 2 \ Марка Уаз ============ Продажи==== Код 1 \ Марка Лада \ ФИО Сидоров 2013 Код 2 \ Марка Лада \ ФИО Сидоров 2014 Код 3 \ Марка Уаз \ ФИО Иванов 2015 Код 4 \Марка Лада \ ФИО Иванов 2016 ================= Правильный ответ будет Сидоров(покупал одну и ту же марку более одного раза). Понятно как вывести таблицу пару значений ФИО - Покупка Код: plsql 1. 2. 3. 4.
А как это сделать не очень понятно.. Заранее благодарю за ответ! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 22:41 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
MihailPetrov, я не спец по запросам, тем более с группировкой... Предпочитаю все считать в коде. Схема у тебя, навскидку, правильная. Я бы считал бы через рекордсет кросса, где ид удовлетворяют и число записей на выхлопе больше одной. Дешево и сердито. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 22:49 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
Виноват. Поторопился. Чуть сложнее. Циклом через тот же кросс пробегаем по клиентам и подхватываем в массив ид тех, у кого уникальных записей по марке всего одна. А с массивом уже делай что хошь... Зуб даю - на серьезном объеме будет быстрее чем через километровый осьминого-подобный запрос. Перечитал ТЗ - опять немного не то, млин, но, где-то так... близко. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 23:05 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
HAVING COUNT(marka)>1 AND COUNT(DISTINCT marka)=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 23:06 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
Akina,Спасибо) Получается примерно так? Код: plsql 1. 2. 3. 4. 5.
Ругается на COUNT(DISTINCT , дескать ошибка синтаксиса пропущен оператор! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 23:12 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
Вот такая штучка тоже не прокатывает.. Код: plsql 1. 2. 3. 4.
Не поддерживает DISTINCT внутри конструкции COUNT() ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 23:18 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
Akina, респект. Вот я на это оперся бы и, все равно, в коде :) Для себя, есно... . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2016, 23:21 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
MihailPetrovВот такая штучка тоже не прокатывает.. Код: plsql 1. 2. 3. 4.
Не поддерживает DISTINCT внутри конструкции COUNT() Обычный Access не поддерживает DISTINCT внутри COUNT. Чтобы поддерживало необходимо подключить "Синтаксис для SQL Server (ANSI 92)". Но делать этого я не рекомендую, база станет глючным и иногда будет вылетать с непонятной ошибкой. Есть другой выход. Используйте ADO или же Application.CurrentProject (последний также относиться к ADO). Вот там без проблем можете использовать COUNT(DISTINCT ...). А если Вам нужен именно запрос, то тогда можно переделать этот запрос, использовав внутренний подзапрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2016, 05:59 |
|
Запрос на выборку!
|
|||
---|---|---|---|
#18+
studieren... А если Вам нужен именно запрос, то тогда можно переделать этот запрос, использовав внутренний подзапрос. Что-то вроде этого Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2016, 07:44 |
|
|
start [/forum/topic.php?fid=45&fpage=104&tid=1613576]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 443ms |
0 / 0 |