Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Ayuda Select

Arquitectura, Extending SQL, The Postgree Rule System, Intefacing, Trigers, ODBC, JDBC, C++...

Ayuda Select

Notapor jorgemaldona el Lun Dic 17, 2007 6:29 pm

Hola a todos!

El motivo de este post es para preguntar si alguien sabe como puedo sacar los 2 ultimos valores de una columna, por ejemplo tengo la siguiente tabla:

Código: Seleccionar todo
calendarioid |             grupo              | ejercicio | periodo | fechainicio |  fechafin  | fechanomina | fechapago  | fechalimite | estatus
--------------+--------------------------------+-----------+---------+-------------+------------+-------------+------------+-------------+---------
            1 | REFINERIA 340 Y 691            |      2007 |       1 | 2006-12-25  | 2007-01-07 | 2007-01-03  | 2007-01-05 | 2006-12-22  | S


Y quisiera que al hacer un select ejercicio,fechalimite, fechainicio,fechafin from calendario where calendarioid=1; solo me diera el ultimo valor del ejercicio por decir es 2007 y solo me interesa el 7.

Sin mas por el momento, en espera de verme favorecido con lo anterior, quedo a sus ordenes.

Atte.
Jorge Maldonado
jorgemaldona
Novato
Novato
 
Mensajes: 4
Registrado: Lun Dic 17, 2007 6:28 pm

Re: Ayuda Select

Notapor ivancp el Mar Dic 18, 2007 11:06 am

reemplaza ejercicio (del select por)

substr(ejercicio, 4, 1) as digito,

quedará algo asi:


select substr(ejercicio, 4, 1) as digito,fechalimite, fechainicio,fechafin from calendario where calendarioid=1
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 316
Registrado: Jue Sep 06, 2007 12:57 pm

Muy agradecido...

Notapor jorgemaldona el Mar Dic 18, 2007 11:27 am

Gracias ivancp, nunca pense que fuera tan sencillo.

Tengo una dudita mas y espero no abusar de tu tiempo e intelecto.

El resultado del query que me pusiste es:
select substr(ejercicio, 4, 1) as digito,fechalimite, fechainicio,fechafin from calendario where calendarioid=1 ;

digito | fechalimite | fechainicio | fechafin
--------+-------------+-------------+------------
7 | 2006-12-22 | 2006-12-25 | 2007-01-07

Ahora bien como podria hacerle para que me acomode o arroge la fecha de esta manera: 22dic2006 , se que tendria que poner un case para validar que mes es el que debe de ser pero no tengo idea de como iria bien.

Sin mas por el momento, en espera de verme favorecido con lo anterior, quedo a sus ordenes.

Atte.
Jorge Maldonado
jorgemaldona
Novato
Novato
 
Mensajes: 4
Registrado: Lun Dic 17, 2007 6:28 pm

Re: Muy agradecido...

Notapor ivancp el Mar Dic 18, 2007 11:39 am

Puedes usar la funcion to_char(fecha,formato)

http://www.postgresql.org/docs/8.0/inte ... tting.html

En la Tabla 9-21 de esa pagina estan los caracteres que debes poner para el formato que deseas.
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 316
Registrado: Jue Sep 06, 2007 12:57 pm

Re: Muy agradecido...

Notapor jorgemaldona el Mar Dic 18, 2007 11:45 am

Me vas a decir como friego pero serias tan amable de ejemplificarmelo y como se meteria en el query para que me lo arrogara? pero y si es otro mes y no dic?

:S

Disculpa si hago tanta pregunta.
jorgemaldona
Novato
Novato
 
Mensajes: 4
Registrado: Lun Dic 17, 2007 6:28 pm

Con esto será suficiente.

Notapor ivancp el Mar Dic 18, 2007 12:12 pm

Antes de continuar por favor lee esta pagina:
http://es.wikipedia.org/wiki/RTFM

select substr(ejercicio, 4, 1) as digito,to_char(fechalimite,'DD MON YYYY') as fecha, fechainicio,fechafin from calendario where calendarioid=1 ;

Pero mostrara las fechas en ingles, si quieres en español debes cambiar la opcion de configuracion lc_messages del archivo de configuracion de postgresql.conf

lc_messages = 'es_ES'

y cambiar la consulta de esta manera:

select substr(ejercicio, 4, 1) as digito,to_char(fechalimite,'DD TMMON YYYY') as fecha, fechainicio,fechafin from calendario where calendarioid=1 ;
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 316
Registrado: Jue Sep 06, 2007 12:57 pm

Re: Con esto será suficiente.

Notapor jorgemaldona el Mar Dic 18, 2007 12:50 pm

Upz, perdon por haberte ofendido, soy muy novaton en esto.

MUCHAS GRACIAS por tu ayuda y paciencia.

Solo un detallito, al cambiar la configuracion del lc_messages no me modifica el lenguaje, actualmente lo tengo asi configurado:
lc_messages = 'es_ES@euro'

Pero no me cambia nada al dar el query, incluso reinicio el postgresql, a que se podra deber?

Sin mas por el momento, en espera de verme favorecido con lo anterior, quedo a sus ordenes.

Atte.
Jorge Maldonado
jorgemaldona
Novato
Novato
 
Mensajes: 4
Registrado: Lun Dic 17, 2007 6:28 pm


Volver a PostgreSQL

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados