|
Подскажите, как реализовать в запросе | ☑ | ||
---|---|---|---|---|
0
starz555
02.09.13
✎
10:55
|
Есть справочник договоры:
В элементе справочника присутствуют реквизиты Владелец, район. Данные, например такие: Контрагент | Район |Количество Договоров в районе ООО "Первый" |Московский |3 ООО "Первый" |Томский |4 ООО "Первый" |Александровский |3 ООО "Второй" |Московский |3 ООО "Второй" |Томский |2 ООО "Второй" |Александровский |1 Как выбрать в запросе данные в виде: Владелец/Район (с максимальным количеством договоров): ,то есть в итоге надо получить ООО "Первый" |Томский |4 ООО "Второй" |Московский |3 Банально, наверное, просто догнать не могу. Подскажите, кому не трудно, пожалуйста |
|||
1
butterbean
02.09.13
✎
10:58
|
просто отсортировать что-ли??
|
|||
2
йети
02.09.13
✎
10:58
|
возможно поможет сортировка количеству договоров :)
|
|||
3
Ёпрст
02.09.13
✎
11:00
|
сгруппировать по владельцу , + максимум от количества - это в подзапрос, в основном запросе - условие на владельца и количество из подзапроса.
|
|||
4
Starhan
02.09.13
✎
11:04
|
Или левое соединение
|
|||
5
starz555
02.09.13
✎
11:08
|
Ёпрст, про подзапрос понял, а как в основном условие поставить так, чтобы отобрались только строки
с районом, в котором максимально количество договоров? ВЫБРАТЬ Контрагенты.Ссылка КАК Владелец, ДоговорыКонтрагентов.РайонНовый КАК РайонНовый, КОЛИЧЕСТВО(ДоговорыКонтрагентов.Ссылка) КАК КоличествоДоговоров ПОМЕСТИТЬ КоличествоПоРайонам ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ПО Контрагенты.Ссылка = ДоговорыКонтрагентов.Владелец ГДЕ НЕ Контрагенты.ЭтоГруппа И НЕ Контрагенты.ПометкаУдаления И НЕ ДоговорыКонтрагентов.ПометкаУдаления СГРУППИРОВАТЬ ПО Контрагенты.Ссылка, ДоговорыКонтрагентов.РайонНовый ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КоличествоПоРайонам.Владелец КАК Владелец, КоличествоПоРайонам.РайонНовый, КоличествоДоговоров ИЗ КоличествоПоРайонам КАК КоличествоПоРайонам УПОРЯДОЧИТЬ ПО Владелец |
|||
6
Ёпрст
02.09.13
✎
11:22
|
ВЫБРАТЬ
КоличествоПоРайонам.Владелец КАК Владелец, КоличествоПоРайонам.РайонНовый, КоличествоДоговоров ИЗ КоличествоПоРайонам КАК КоличествоПоРайонам Внутренее Соединение (выбрать КоличествоПоРайонам.Владелец КАК Владелец,Максимум(КоличествоПоРайонам.КоличествоДоговоров) как КоличествоДоговоров ИЗ КоличествоПоРайонам КАК КоличествоПоРайонам) как Табличка ПО Табличка.Владелец = КоличествоПоРайонам.Владелец и Табличка.КоличествоДоговоров = КоличествоПоРайонам.КоличествоДоговоров УПОРЯДОЧИТЬ ПО Владелец |
|||
7
Лодырь
02.09.13
✎
11:27
|
Кстати, топикстартер не указал что нужно получить при равенстве:
ООО "Первый" |Московский |2 ООО "Первый" |Томский |2 |
|||
8
starz555
02.09.13
✎
11:37
|
Возможно, я не очень корректно сформулировал.
Всем спасибо за помощь. Разобрался. В итоге так: ВЫБРАТЬ ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.РайонНовый, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДоговорыКонтрагентов.Ссылка) КАК КоличествоДоговоров ПОМЕСТИТЬ ВТ_КоличествоДоговоровПоРайонам ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов СГРУППИРОВАТЬ ПО ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.РайонНовый ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_КоличествоДоговоровПоРайонам.Владелец, МАКСИМУМ(ВТ_КоличествоДоговоровПоРайонам.КоличествоДоговоров) КАК КоличествоДоговоров ПОМЕСТИТЬ ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента ИЗ ВТ_КоличествоДоговоровПоРайонам КАК ВТ_КоличествоДоговоровПоРайонам СГРУППИРОВАТЬ ПО ВТ_КоличествоДоговоровПоРайонам.Владелец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента.Владелец КАК Владелец, ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента.КоличествоДоговоров, ВТ_КоличествоДоговоровПоРайонам.РайонНовый ИЗ ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента КАК ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КоличествоДоговоровПоРайонам КАК ВТ_КоличествоДоговоровПоРайонам ПО ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента.Владелец = ВТ_КоличествоДоговоровПоРайонам.Владелец И ВТ_МаксимальноеКоличествоДоговоровВРайонеКонтрагента.КоличествоДоговоров = ВТ_КоличествоДоговоровПоРайонам.КоличествоДоговоров УПОРЯДОЧИТЬ ПО Владелец |
|||
9
Ёпрст
02.09.13
✎
11:41
|
(7) это тоже можно обойти, тупо максимумом по району..:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |