![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить групповую сортировку ;в таблице? [D5, IB5.x]
novill © (2003-05-13 10:40:00)Уважаемые мастаки, меня тут начальство озадачило:
Есть таблица с полями:
ШИФР - шифр группы записей (шифр комплекта деталей),
РАЗМЕР - уникальый признак записи в группе (размер детали).
Необходимо получить следующую сортировку:
Сначала идет группа записей минимальный РАЗМЕР в которой является наименьшим для всех остальных групп,
...,
последней идет группа минимальный РАЗМЕР в которой наибольший из всех групп.
Например
ШИФР|РАЗМЕР
3 |2
3 |3
3 |4
1 |3
1 |4
1 |5
1 |7
4 |5
4 |6
4 |7
4 |8
Ограничений на выбор способов нет, только очень не хочется руками перекапывать таблицу.
Zacho (2003-05-13 14:50:00) [1]
> novill © (13.05.03 14:42)
Лучше аськой 35253857
novill (2003-05-13 14:42:00) [2]
> Zacho © (13.05.03 13:41)
У тебя можно еще поконсультироваться?
Есть еще пара вопросов в продолжении этой темы.
Может почтой? или аськой? (146912494)
Zacho (2003-05-13 13:41:00) [3]
> novill © (13.05.03 13:36)
Создай индекс на поле РАЗМЕР
novill (2003-05-13 13:36:00) [4]Спасибо.
> Zacho
Ты прав.
У меня получилось. Правда запрос выполнялся минут 7 (на 6200 записей)
Zacho (2003-05-13 11:49:00) [5]
> Соловьев © (13.05.03 11:32)
Автор исходного поста привел пример, какой результат надо получить. А в результате запроса Johnmen © (13.05.03 10:54) или WarLord © (13.05.03 11:07) получится что-то типа :
ШИФР|РАЗМЕР
3 |2
1 |3
4 |5
> WarLord © (13.05.03 11:33)
А ты попробуй, и увидишь что получится совсем не то, а вот что:
ШИФР|РАЗМЕР
3 |2
1 |3
3 |3
1 |4
3 |4
1 |5
4 |5
4 |6
1 |7
4 |7
4 |8
WarLord (2003-05-13 11:33:00) [6]а по-моему еще проще:
SELECT ШИФР, РАЗМЕР
FROM Table
ORDER BY РАЗМЕР, ШИФР
Соловьев (2003-05-13 11:32:00) [7]2 Zacho
> Сначала идет группа записей минимальный РАЗМЕР в которой
> является наименьшим для всех остальных групп,
> ...,
> последней идет группа минимальный РАЗМЕР в которой наибольший
> из всех групп.
групы-это все?
Zacho (2003-05-13 11:21:00) [8]
> Johnmen © (13.05.03 10:54)
> WarLord © (13.05.03 11:07)
Насколько я понял, надо получить всезаписи, а не только с минимальным размером. Так что, скорее всего надо что-то типа
SELECT T.SHIFR,T.RAZMER,
(SELECT MIN(T2.RAZMER) FROM TEST T2 WHERE T.SHIFR=T2.SHIFR)
FROM TEST T
ORDER BY 3,1
WarLord (2003-05-13 11:07:00) [9]
> SELECT ШИФР, MIN(РАЗМЕР)
> FROM Table
> GROUP BY ШИФР
> ORDER BY РАЗМЕР
Johnmen (2003-05-13 10:54:00) [10]SELECT ШИФР, MIN(РАЗМЕР)
FROM Table
GROUP BY ШИФР
ORDER BY 2