|
Модераторы: Akina |
|
Cashey |
|
|||
Бессмертный Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Условие:
Есть таблица, имеет, допустим, три поля: 1. kod - неуникальный идентификатор 2. reason - некое значение 3. dstop - дата, связанная с основным значением пример: kod reason dstop 5068070838000124 1 2013-01-01 5068070838000124 5 2014-02-02 5068070838000124 3 2015-03-03 требуется вытащить только значение поля reason из строки с максимальным значением поля dstop Я родил такую конструкцию:
Функционально работает, но выглядет как извращение. Задача тривиальная, думаю кому-то уже хватило мозгов создать что-то более рациональное. Спасибо за подсказку. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
Akina |
|
||||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Cashey |
|
||||
Бессмертный Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Элегантно, но не применимо. Приведенный в примере where S_file.kod ='5068070838000124' лишь частный случай. В общем случае в этом месте предполагается множество. И конструкция может быть where S_file.kod in (...). В этом случае SELECT TOP 1 не работоспособно. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Cashey, значит, сперва обдумайте свой вопрос полностью, а потом спрашивайте.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ТоляМБА |
|
|||
Котэ Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: нет Всего: 252 |
Это сообщение отредактировал(а) ТоляМБА - 19.8.2015, 21:04 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
ТоляМБА, я бы рекомендовал фильтр по коду убрать в подзапрос.
Cashey, если версия сервера знает про оконные функции - лучше используй DENSE_RANK() OVER (PARTITION BY kod ORDER BY dstop DESC) -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ТоляМБА |
|
|||
Котэ Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: нет Всего: 252 |
Akina, согласен.
|
|||
|
||||
Cashey |
|
||||
Бессмертный Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Глупо как, я не догодался в выражение ON первого JOIN вставить второе условие, тянув для этого второй JOIN. Но в целом идея та же. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |