Как сделать многострочный ТОР 1 * ?
Запросы
---------
select kod_id, _date, order_id
into #а
from ...
order by kod_id, _date, order_id
---------
select kod_id, _date, order_id
,id identity(int)
into #b
from #a
order by kod_id, _date, order_id
---------
...работают неправильно не смотря на то, что #a тоже упорядочена. В таблицу #b сервер выбирает строки не в том порядке, в котором они в #a и, как результат, id становится не по порядку. Иногда, правда, результат бывает упорядоченным, но я не знаю от чего это зависит. Если бы он работал всегда, то получить то, что хотел в начале можно было бы так
select *
from #b as b
inner join (select gd_id, min (id) from #b group by gd_id) as c
on b.id = c.id
[ Это Сообщение было отредактировано vadim_march в 2002-09-05 1408 ]
И что значит "становится не по порядку". Вы что сами таблицы смотрите? Есть подозрение, что Вы ведете речь не о ВЫВОДЕ РЕЗУЛЬТАТОВ ЗАПРОСА а о просмотре САМИХ ТАБЛИЦ. Тогда становится понятным почему "не всегда".
Если это так, то имейте в виду, что программиста не должно интересовать в каком порядке записи расположены в таблице - сервер их располагает в соответствии со своей внутренней логикой, зависящей от многих факторов (например, в зависимости от назначенных индексов). Интересен только процесс ВЫВОДА результатов запроса средством просмотра, которым вы пользуетесь, а здесь и ORDER BY и GROUP BY уже работают и не работать не могут!
Если проблема осталась, сообщите с какой СУБД вы работаете, чем выводите результаты запроса.