powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sql: max from between
14 сообщений из 14, страница 1 из 1
sql: max from between
    #39447366
lalafa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем. Есть ли элегантный способ получить одну запись из выражения between?

Пример: select t.date from t where :param1 between t.fromdate and t.todate

Запрос выдает несколько записей, но мне надо взять максимальное значение из всех date. Внешние запросы не предлагать.
...
Рейтинг: 0 / 0
sql: max from between
    #39447371
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lalafaselect t.date from t where :param1 between t.fromdate and t.todate

Запрос выдает несколько записей, но мне надо взять максимальное значение из всех date.RTFM Aggregate Functions (FAQ)
...
Рейтинг: 0 / 0
sql: max from between
    #39447372
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lalafa,
Код: plsql
1.
select max(t.date) from t where :param1 between t.fromdate and t.todate
...
Рейтинг: 0 / 0
sql: max from between
    #39447389
lalafa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XMLerlalafa,
Код: plsql
1.
select max(t.date) from t where :param1 between t.fromdate and t.todate



Тут условие выведено в колонку. Мне же нужно чтобы это условие было в после where .
...
Рейтинг: 0 / 0
sql: max from between
    #39447391
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lalafaТут условие выведено в колонку. Мне же нужно чтобы это условие было в после where .Бррррр... http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
sql: max from between
    #39447393
saxarock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lalafa,

Зачем?
...
Рейтинг: 0 / 0
sql: max from between
    #39447403
lalafaМне же нужно чтобы это условие было в после where
lalafaВнешние запросы не предлагать

Храните признак IS_MAKSIMALNOE_ZNA4ENIE, и пишите его в свой where.
...
Рейтинг: 0 / 0
sql: max from between
    #39447407
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я такой умныйХраните признак в сберегательной кассе
...
Рейтинг: 0 / 0
sql: max from between
    #39447413
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кип денсе ренк фёст
...
Рейтинг: 0 / 0
sql: max from between
    #39447416
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxкип денсе ренк фёст ему же надо было lalafaв после where. Там аналитика не работает :D
...
Рейтинг: 0 / 0
sql: max from between
    #39447427
andreymx кип денсе ренк фёст

lalafaЗапрос выдает несколько записей

Ему(ей(им)) не подходит.
...
Рейтинг: 0 / 0
sql: max from between
    #39447445
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lalafaЗапрос выдает несколько записей, но мне надо взять максимальное значение из всех date. Внешние запросы не предлагать.

А внутренние?

Если нет повторяющихся дат, то можно использовать магию данных.
Код: plsql
1.
and t.date = (select max(tt.date) from t tt where ...)



Или влепить магию в виде order by t.date desc и fetch 1 на клиенте
...
Рейтинг: 0 / 0
sql: max from between
    #39447446
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
j2kandreymxкип денсе ренк фёст ему же надо было lalafaв после where.Там аналитика не работает :Dработает, как и любая групповая функция.
...
Рейтинг: 0 / 0
sql: max from between
    #39447468
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на правах шутки в продолжение = (select max(...

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t as (select level id, 
                  trunc(sysdate) + mod(level,3) date_, 
                  trunc(sysdate) - mod(level,5) start_date,  
                  trunc(sysdate) + 1 + mod(level,5) end_date 
          from dual connect by level <= 10
          ---- test data)[
select * from t 
where /*trunc(sysdate) + 3*/ :param between t.start_date and t.end_date
      and (t.date_, t.id) in (select max(tt.date_) keep (dense_rank last order by tt.date_), 
                                     max(tt.id) keep (dense_rank last order by tt.date_) 
                              from t tt 
                              where /*trunc(sysdate) + 3*/ :param between tt.start_date and tt.end_date);
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sql: max from between
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]