Ajuda em ultimo dia do mês por ano

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:

Ola Amigos.

To me matando e gostaria de ideias dos colegas !!!

Preciso fazer uma LOV com o ultimo dia do mês durante um certo periodo , eu tenho o select abaixo:

Selecionar tudo

SELECT To_Char(last_day(Trunc(TO_DATE('01/01/2009','DD/MM/YYYY')))) ,
To_Char(last_day(Trunc(TO_DATE('01/02/2009','DD/MM/YYYY')))) ,
To_Char(last_day(Trunc(TO_DATE('01/03/2009','DD/MM/YYYY')))) ,
To_Char(last_day(Trunc(TO_DATE('01/04/2009','DD/MM/YYYY')))) 
FROM DUAL
Mas esta vindo como colunas teria como fazer vir como linhas ?

tipo assim :

31/01/2009
28/02/2209
.
.
.

Qualquer ideia e bem vindo !!!

Obrigado..

Douglas - Madmax.

## Para uma boa organização, procure sempre por os códigos dentro da tag CODE. Obrigado :D ##
alexrsilva
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 153
Registrado em: Ter, 27 Mai 2008 1:31 pm
Localização: Rio de Janeiro - RJ

Não sei se ajuda, mas fiz assim.

Selecionar tudo

declare
	type r_meses is record (
		mês   VARCHAR2(200)
    );
    
	type t_meses is table of r_meses index by binary_integer;
	
	meses	t_meses;
begin
for i in 1..12 loop
SELECT To_Char(last_day(Trunc(TO_DATE('01/'||lPAD(i,2)||'/2009','DD/MM/YYYY'))))  
into meses(i).mês
FROM DUAL;
dbms_output.put_line(meses(i).mês);
end loop;

end;
Espero ter ajudado.

Alex Silva

## Para uma boa organização, procure sempre por os códigos dentro da tag CODE. Obrigado :D ##
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Alrsilva, bom exemplo, porém para utilizar em uma LOV, complica um pouco...

Eu faria dessa forma, tendo em vista que ele vai ser inserido na query da lov

Segue exemplo.

Selecionar tudo

SELECT LAST_DAY(TO_DATE('01/'||ROWNUM||'/2009','DD/MM/YYYY'))
  FROM V$SESSION --PODE SER QUALUQER TABELA AQUI COM 12 OU MAIS DE 12 REGISTROS
 WHERE ROWNUM <= 12;
alexrsilva
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 153
Registrado em: Ter, 27 Mai 2008 1:31 pm
Localização: Rio de Janeiro - RJ

Realmente,
Eu estou começando agora com Forms, como não tinha idéia e ele postou em SQL, respondi.
Já fica uma boa dica para quando precisar.

Att,

Alex Silva
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:

Caros Colegas.

Gostaria de agradeçer a todos ao alrsilva e ao RodrigoValentim, a solução do Rodrigo caiu como uma luva.

Obrigado... :-o

Douglas - Madmax
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes