Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta Mysql

Estas en el tema de Consulta Mysql en el foro de Mysql en Foros del Web. Hola todos foreros, espero que esten bien. Bueno esta vez vengo con una duda y les pido el favor que me guíen para poder resolverla. ...
  #1 (permalink)  
Antiguo 19/03/2013, 09:41
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Pregunta Consulta Mysql

Hola todos foreros, espero que esten bien.

Bueno esta vez vengo con una duda y les pido el favor que me guíen para poder resolverla. Resulta que tengo una tabla llamada ALERTAS, la cual posee la siguiente estructura.

nro_radicado tipo fecha
01 acta 01-03-2013
02 pago 01-05-2013
01 pago 02-03-2013
02 prorroga 03-02-2013
.
.
.
.... y asi sucesivamente...

Ahora lo que no he podide realizar es hacer una consulta en la cual los datos de esa tabla me lo muestre de la siguiente forma:

nro_radicado acta prorroga pago
01 01-03-2013 02-03-2013
02 03-02-2013 01-05-2013


y asi sucesivamente, la verdad he intentado pero nada. lo he hecho con condicionales IF pero nada :(. espero me puedan dar una mano y guiarme para poder hacerlo.

De antemano le agradezco su atención y colaboración.

Saludos
  #2 (permalink)  
Antiguo 19/03/2013, 10:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta Mysql

Hola andruxand:

Acláranos algunos puntos antes.

1. ¿Cuantos registros puede tener cada nro_radicado? ¿puede tener más de un acta o más de un pago, o más de una prórroga? si es así ¿cómo se deberían presentar los resultados?

2. ¿De qué tipo es tu campo fecha? esperaría que se trate de un tipo DATE, pero es usual que algunas personas cometan el error de ponerlos como VARCHAR.

Por lo pronto podrías ver si esta consulta te sirve:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +--------------+----------+------------+
  3. | nro_radicado | tipo     | fecha      |
  4. +--------------+----------+------------+
  5. | 01           | acta     | 2013-03-01 |
  6. | 02           | pago     | 2013-05-01 |
  7. | 01           | pago     | 2013-03-02 |
  8. | 02           | prorroga | 2013-02-03 |
  9. +--------------+----------+------------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT
  13.     ->   nro_radicado,
  14.     ->   MAX(CASE WHEN tipo = 'acta' THEN fecha ELSE NULL END) acta,
  15.     ->   MAX(CASE WHEN tipo = 'pago' THEN fecha ELSE NULL END) pago,
  16.     ->   MAX(CASE WHEN tipo = 'prorroga' THEN fecha ELSE NULL END) prorroga
  17.     -> FROM tabla
  18.     -> GROUP BY nro_radicado;
  19. +--------------+------------+------------+------------+
  20. | nro_radicado | acta       | pago       | prorroga   |
  21. +--------------+------------+------------+------------+
  22. | 01           | 2013-03-01 | 2013-03-02 | NULL       |
  23. | 02           | NULL       | 2013-05-01 | 2013-02-03 |
  24. +--------------+------------+------------+------------+
  25. 2 rows in set (0.00 sec)

Dale un vistazo para ver si es más o menos lo que necesitas. El ejemplo considera que cada nro_radicado sólo tiene un registro para cada categoría y que el campo fecha es de tipo DATE.

Saludos
Leo.

Etiquetas: tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:01.