Problemas al recoger los datos mediante select

publicado por: Anonymous

Tengo un problema al hacer un simple select de una fecha. Os comento:

Quiero recoger el mes de la creacion de un archivo y que este ordenado por la fecha con esta sentencia:

select  to_char(fecha,'MONTH') as MES from archivos order by (fecha)  asc;

El problema es que hay varios archivos creados el mismo mes y me muestra esto:

SEPTIEMBRE
SEPTIEMBRE
OCTUBRE   
OCTUBRE   
NOVIEMBRE 
DICIEMBRE 
DICIEMBRE 
DICIEMBRE 
DICIEMBRE 
ENERO     

solo quiero que me salga un mes, no todos. He encontrado algo sobre el select distinc pero me da error… Tambien creo que se puede hacer con group by.

Tambien he probado con distinc

 select distinct(to_char(fecha,'MONTH')) as MES from hph_weekly order by fecha asc;

pero me da este error:

01791. 00000 - "not a SELECTed expression"

¿Alguien me puede ayudar?

solución

select  
    distinct(to_char(fecha,'MONTH')) as MES 
from 
    archivos 
order by to_number(to_char(to_date(mes,'mm'),'mm'))  asc;

En la select se obtiene los meses como texto to_char del campo fecha con formato MONTH (nombre del mes completo), y se usan el distinct para evitar duplicados.

En el order by se coge el mes y se convierte a número del 1 al 12 para ordenar de Enero a Febrero (no se puede usar el nombre del mes al ser alfabético).

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *