Escolha a data da última dentro de 1 ano da data min

votos
0

Eu estou tentando criar uma nova coluna que retorna a última data dentro de 1 ano da primeira data.

Exemplo:

Eu tenho as seguintes datas.

5/6/2011
8/9/2011
3/5/2012
6/8/2012

Assim, a consulta deve escolher 2012/03/05 como a última data neste cenário.

Publicado 10/10/2019 em 00:55
fonte usuário
Em outras línguas...                            


3 respostas

votos
0

Um método utiliza funções da janela:

select max(dt)
from (select t.*, min(dt) over () as min_dt
      from t
     ) t
where dt < dateadd(year, 1, min_dt);

Acho que prefiro uma subconsulta correlacionada, embora:

select max(dt)
from t
where dt < (select dateadd(year, 1, min(dt)) from t);
Respondeu 10/10/2019 em 04:42
fonte usuário

votos
0

Assuma o seu nome da coluna é dte seu nome de tabela éTbl

SELECT MAX(dt)
FROM Tbl
WHERE dt < (SELECT MIN(dt) + 365 FROM Tbl)
Respondeu 10/10/2019 em 01:30
fonte usuário

votos
0

Você pode muito bem traduzir sua especificação Inglês em um sql para um presente:

 SELECT max(d) 
 FROM  t
 WHERE d < (SELECT DATEADD(year, 1, MIN(d)) FROM t)
Respondeu 10/10/2019 em 01:25
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more