Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сделать многострочный ТОР 1 * ?

1.3K
05 сентября 2002 года
vadim_march
1 / / 20.05.2000
Как получить по одной (верхней) записи для каждого кода товара из таблицы, которая до этого была отсортирована по нескольким (потому что неуникальным) полям.
Запросы
---------
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 ]
609
18 сентября 2002 года
lpt
23 / / 20.01.2000
Не совсем понятно, что Вы хотите получить... Какой "id становится не по порядку" ? kod_id или order_id ? Я не знаю язык какой СУБД Вы используете, но в любом случае конструкции "order by kod_id" уже достаточно чтобы набор данных выводился в порядке наращивания kod_id.

И что значит "становится не по порядку". Вы что сами таблицы смотрите? Есть подозрение, что Вы ведете речь не о ВЫВОДЕ РЕЗУЛЬТАТОВ ЗАПРОСА а о просмотре САМИХ ТАБЛИЦ. Тогда становится понятным почему "не всегда".

Если это так, то имейте в виду, что программиста не должно интересовать в каком порядке записи расположены в таблице - сервер их располагает в соответствии со своей внутренней логикой, зависящей от многих факторов (например, в зависимости от назначенных индексов). Интересен только процесс ВЫВОДА результатов запроса средством просмотра, которым вы пользуетесь, а здесь и ORDER BY и GROUP BY уже работают и не работать не могут!

Если проблема осталась, сообщите с какой СУБД вы работаете, чем выводите результаты запроса.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог