Имя: Пароль:
1C
1С v8
Группировка в запросе с условием
0 Штурман
 
04.03.15
06:38
Есть таблица, пример:
Физлицо | Число | Значение
Иванов | 1 |  Первое
Иванов | 3 |  Пятое
Сидоров | 4 |  Третье
Иванов | -1 |  Восьмое

Как сделать группировку, чтобы выводилось большее число?
Результат должен быть таков:
Иванов | 3 |  Пятое
Сидоров | 4 |  Третье

Выбрать
Физлицо,
максимум(Число),
Значение
из Таблица
Сгруппировать по
Физлицо, Значение

Но т.к. Значения в таблице никогда не равны, то группировки по большему числу не происходит.
1 anaed
 
04.03.15
07:26
Временные таблицы помогут.

Собираешь в таблицу только фамилии и максимумы значений потом соединяешь с исходной по фамилии и числу, чтобы получить значение.
2 dk
 
04.03.15
07:52
в подзапросе получаешь фио -  максимум
а потом соединяешь с основной таблицей и получаешь 3-ю колонку
выбрать
  *
из
где
  (фио,число) в (выбрать фио,макс(число) из сгруп по ФИО)
3 Штурман
 
04.03.15
12:14
(1) (2)  спасибо, сделал так:
первый запрос группирует только по физлицу и числу, выводя максимальное, плюс, а второй запрос вложенный, уже со всеми данными, потом идет связ по человеку и равенству числа :)
Закон Брукера: Даже маленькая практика стоит большой теории.