Olá Osvaldo,

Na minha subquery eu quero que conste as datas de aniversário com o mês
maior ou igual ao mês atual, e a partir daí (na minha query principal), eu
quero que apenas as datas do resultado da minha subquery mostrem aquelas
que possuem o dia maior ou igual ao dia atual, ordenando o resultado final
por mês e dia.

Vou tentar a solução apresnetada pelo Fabrizio

*SELECT nome, aniversario FROM clientes
WHERE extract(MONTH from aniversario) > extract(MONTH from now())
OR (extract(MONTH from aniversario) = extract(MONTH from now()) AND
extract(DAY from aniversario) >= extract(DAY from now()))
ORDER BY extract(MONTH from aniversario), extract(DAY from aniversario) *

e ver se consigo o resultado esperado. Valeu Galera!




Em 19 de agosto de 2012 23:00, Osvaldo Kussama
<osvaldo.kuss...@gmail.com>escreveu:

> Em 19/08/12, Ramiro Pamponet<roli...@oi.com.br> escreveu:
> > E seu eu fizesse uso de subqueryes do tipo:
> >
> -----------------------------------------------------------------------------------------------------------------------------
> > select nome, aniversario from clientes
> > where extract(DAY from aniversario) >= extract(DAY from now())
> > in
> > (select nome, aniversario from clientes
> > where extract(MONTH from aniversario) >= extract(MONTH from now()))
> > order by extract(MONTH from aniversario), extract(DAY from aniversario)
> >
> -----------------------------------------------------------------------------------------------------------------------------
> > mas com um pequeno detalhe, essa consulta me retorno o seguinte erro:
> >
> -----------------------------------------------------------------------------------------------------------------------------
> > ERRO:  subconsulta tem muitas colunas
> > LINE 3: in
> >         ^
> > ********** Error **********
> > ERRO: subconsulta tem muitas colunas
> > SQL state: 42601
> > Character: 103
> >
> -----------------------------------------------------------------------------------------------------------------------------
> > Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e
> > aniversario). Onde estou errando?
> >
> > Era para fazer a consulta por mês e depois a partir do resultado dessa
> > consulta fazer outra por dia, e por fim ordenar por mês e dia.
> >
> > Caso não seja possível, vou começar a pensar na possibilidade de
> utilizar a
> > função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser
> > descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um
> Grande
> > Abraço a Todos!
> >
>
> Não consegui ver sentido em sua cláusula IN.
> O que você deseja que conste do resultado de sua sub-query?
>
> Osvaldo
>
> Obs.: Aonde você leu que a função to_char será descontinuada?
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a