Oracle - максимальная ошибка запроса за год - PullRequest
0 голосов
/ 22 декабря 2011
select * from 
             (    
                select add_months(sysdate,-2)dt from dual
                union
                select add_months(sysdate,-1) from dual
                union
                select add_months(sysdate,2)from dual
                union
                select add_months(sysdate,3) from dual
             )

Result

я хочу максимальный год минимальной даты ("22.02.2012 12:02:08")
Как это сделать?

Ответы [ 3 ]

2 голосов
/ 22 декабря 2011

Вы можете использовать это:

SELECT * FROM
(
    SELECT add_months(sysdate,-2)dt from dual
    UNION ALL
    SELECT add_months(sysdate,-1) from dual
    UNION ALL
    SELECT add_months(sysdate,2)from dual
    UNION ALL
    SELECT add_months(sysdate,3) from dual
    ORDER BY trunc(dt,'YEAR') DESC, trunc(dt,'MONTH') ASC
)
WHERE rownum = 1
2 голосов
/ 22 декабря 2011

используйте select max(dt) вместо select *

Редактировать : после перечитывания вашего вопроса и сравнения желаемого результата вы, вероятно, захотите минимальную дату дат в пределахмаксимальный год .

В этом случае утверждение будет

with dates as
         (    
            select add_months(sysdate,-2)dt from dual
            union
            select add_months(sysdate,-1) from dual
            union
            select add_months(sysdate,2)from dual
            union
            select add_months(sysdate,3) from dual
         )
      select min(dt) from dates 
        where trunc(dt,'YYYY') = (select max(trunc(dt, 'YYYY')) from dates)
0 голосов
/ 22 декабря 2011

Не уверен, что это то, что вы ищете.Вопрос был не совсем понятен для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...