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

Откуда: Владимир
Сообщений: 627
есть три столбца
1. Регион
2. Объем продаж
3. Марка товара
Должно получиться:
1. Регион
2. Max(Объем продаж) - одной марки
3. Марка товара
Просто вывести регион и Max(Объем продаж) получается, как только добавляю еще и марку сразу понятно дело группирует по марке и выводит несколько марок на один регион и никакого Max объема
2 фев 05, 09:22    [1292764]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
Вы определитесь что вам надо, а тоя что-то не понял :(

Если я правильно додумал ваши мудреные размышления, то вам надо получить:
По каждому региону самую продаваемую марку и объем ее продаж!!!

Для этого делаете один запрос: где группируете по Региону и получаете МАХ по объему продаж
В следующем запросе уже вытаскиваете название марки по Inner Join первого запроса с таблицей On по двум полям (Регион+Объем продаж)

PS: Должно получиться
PPS: Если в одном регионе сущ. несколько марок с максимальным объемом продаж (т.е. они совпадают), то запрос по данному региону выведет все такие марки товара.
2 фев 05, 09:32    [1292803]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
NikP
Member

Откуда: Владимир
Сообщений: 627
я конечно думал о том. чтобы связать по региону и по объему продаж, но мне нужна только одна марка, если будут одинаковые объемы у двух марок мне нужно взять любую из них, но только одну.
2 фев 05, 09:44    [1292860]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
NikP
я конечно думал о том. чтобы связать по региону и по объему продаж, но мне нужна только одна марка, если будут одинаковые объемы у двух марок мне нужно взять любую из них, но только одну.

И это реально:

Запрос1: Регион, МОб = МАХ(Объем) ИЗ Таблица
Запрос2: Регион, МОб, МКлюч = МАХ/МИН(ключ) ИЗ Таблица+Запрос1 по Регион+МОб
Запрос3: Регион, МОб, МКлюч, Марка ИЗ Таблица+Запрос2 по Регион+МКлюч

Дерзай
2 фев 05, 09:52    [1292896]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
NikP
Member

Откуда: Владимир
Сообщений: 627
paparome
Запрос1: Регион, МОб = МАХ(Объем) ИЗ Таблица
Запрос2: Регион, МОб, МКлюч = МАХ/МИН(ключ) ИЗ Таблица+Запрос1 по Регион+МОб
Запрос3: Регион, МОб, МКлюч, Марка ИЗ Таблица+Запрос2 по Регион+МКлюч

Дерзай

а можно тоже самое но в виде
select ... 
а то я что-то заблудился в трех соснах
2 фев 05, 10:00    [1292947]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
Мда :(
И что вам в виде SQL запросов идея лучше понятна

Идея такая:
1. Определяем по каждому региону максимум
2. Для максимума в каждом регионе берем максимальное значение ключа
3. По ключю (благо он уникален) вытаскиваем наименование марки
z1:
Select Регион, max(Объем) as MO
FROM Таблица
GROUP BY Регион

z2:
Select z1.Регион, z1.МО, max(Таблица.ключ) as MK
FROM Таблица INNER JOIN z1
ON Таблица.Регион = z1.Регион And Таблица.Объем = z1.МО
GROUP BY z1.Регион, z1.МО

z3:
Select z2.Регион, z2.МО, z2.МК, Таблица.Марка
FROM Таблица INNER JOIN z2
ON Таблица.ключ = z2.MK
2 фев 05, 10:08    [1292997]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
NikP
Member

Откуда: Владимир
Сообщений: 627
про идею я именно так и подумал в заблуждение ввело = в выражении МКлюч = МАХ/МИН(ключ) я подумал, что может это связь которую предлагается сделать
спасибо за помощь. К стати а более простого варианта нет случаем, а то у меня получается в Select порядка 5-7 вложений, а то и больше. то что я спрашивал это ведь только небольшая часть.
2 фев 05, 10:19    [1293042]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
NikP
про идею я именно так и подумал в заблуждение ввело = в выражении МКлюч = МАХ/МИН(ключ) я подумал, что может это связь которую предлагается сделать
спасибо за помощь. К стати а более простого варианта нет случаем, а то у меня получается в Select порядка 5-7 вложений, а то и больше. то что я спрашивал это ведь только небольшая часть.

Если у тебя Акс 2000 или выше, то можно это свернуть в один запрос, но короче он от этого не станет
Если ваши 5-7 вложений будут "плохо" выполняться или не совсем верно работать (ввиду громоздкости - сложно найти ошибку), то можно поробовать вариант с временной таблицей и заполнением ее из VBA
2 фев 05, 10:36    [1293123]     Ответить | Цитировать Сообщить модератору
 Re: запрос на получение Max значения  [new]
NikP
Member

Откуда: Владимир
Сообщений: 627
access 2000. понятное дело я из этих трех запросов буду делать один
но в итоге select будет выложен в VBA в Excell и там пойдет дальнейшая обработка. спасибо еще раз за помощь, а то сидел голову ломал. Я правда надеялся, что это будет по-короче.
2 фев 05, 10:44    [1293160]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить