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

Ayuda con consulta

Estas en el tema de Ayuda con consulta en el foro de Mysql en Foros del Web. Hola, necesito que me ayuden con esto por favor. Tengo una tabla en el que guardo las facturas con los siguientes datos: .- facturado (tinyint) ...
  #1 (permalink)  
Antiguo 17/02/2011, 07:22
 
Fecha de Ingreso: septiembre-2010
Ubicación: Santiago, Chile
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 0
Ayuda con consulta

Hola, necesito que me ayuden con esto por favor.

Tengo una tabla en el que guardo las facturas con los siguientes datos:

.- facturado (tinyint)
.- periodo (varchar)
.- n_factura (date)
.- fecha_enviada (date)
.- fecha_prestacion (date)
.- fecha_emision (date)
.- tipo_pago (varchar)
.- factura_firmada (tinyint)
.- fecha_pago (date)

Quiero hacer una consulta en el que pueda direfrenciar las facturas por periodos, osea una consulta parecida a esta:

Ej:
Periodo Enero 2011
Todos los resultados

Periodo Febrero 2011
Todos los resultados

y asi sucesivamente

Saludos
  #2 (permalink)  
Antiguo 17/02/2011, 08:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con consulta

Select * from tablafacturas order by year(fecha_emision),month(fecha_emision),fecha_emi sion;

Select * from tablafacturas where year(fecha_emision)=2011 and month(fecha_emision)=1 order by year(fecha_emision),month(fecha_emision),fecha_emi sion;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 17/02/2011, 14:51
 
Fecha de Ingreso: septiembre-2010
Ubicación: Santiago, Chile
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con consulta

Hola

lo que pasa es que no necesito ordenarlos por fecha de emision sino por periodo, y es del tipo varchar

Saludos
  #4 (permalink)  
Antiguo 17/02/2011, 15:18
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ayuda con consulta

Hola clavena:

Podrías poner algunos datos de ejemplo y mostrarnos cómo deseas la salida? y una pregunta, Periodo se relaciona de alguna manera con las fechas que estás manejando?

Saludos
Leo.
  #5 (permalink)  
Antiguo 18/02/2011, 01:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con consulta

Si periodo simpre es Mes Año como pones en el ejemplo, ordenar por

year(fecha_emision),month(fecha_emision)

deberia date lo que buscas, excepto que el mes y año de periodo no tengan nada que ver con la fecha... eso solo lo sabes tu.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #6 (permalink)  
Antiguo 18/02/2011, 10:39
 
Fecha de Ingreso: septiembre-2010
Ubicación: Santiago, Chile
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con consulta

Hola

todavia no he poblado la base de datos pero supongamos que tengo estos datos

facturado - periodo - n factura - fecha enviada - fecha prestacion

si - diciembre 2010 - 123 - 12/01/2011 - 11/01/2011
si - diciembre 2010 - 124 - 12/01/2011 - 11/01/2011
si - enero 2011 - 125 - 12/01/2011 - 11/01/2011
si - enero 2011 - 126 - 12/01/2011 - 11/01/2011
si - enero 2011 - 127 - 12/01/2011 - 11/01/2011
si - febrero 2011 - 128 - 12/01/2011 - 11/01/2011
si - febrero 2011 - 129 - 12/01/2011 - 11/01/2011
si - febrero 2011 - 130 - 12/01/2011 - 11/01/2011
si - febrero 2011 - 131 - 12/01/2011 - 11/01/2011

Quiero que la cunsulta se muestre asi en una tabla HTML

Periodo diciembre 2010
diciembre 2010 - 123 - 12/01/2011 - 11/01/2011
diciembre 2010 - 124 - 12/01/2011 - 11/01/2011

Periodo enero 2011
enero 2011 - 125 - 12/01/2011 - 11/01/2011
enero 2011 - 126 - 12/01/2011 - 11/01/2011
enero 2011 - 127 - 12/01/2011 - 11/01/2011

Periodo febrero 2011
febrero 2011 - 128 - 12/01/2011 - 11/01/2011
febrero 2011 - 129 - 12/01/2011 - 11/01/2011
febrero 2011 - 130 - 12/01/2011 - 11/01/2011
febrero 2011 - 131 - 12/01/2011 - 11/01/2011
  #7 (permalink)  
Antiguo 21/02/2011, 02:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con consulta

Primero yo pondria un campo fecha_factura, este concepto seguro que existe, hace muchos años que termine economicas pero no creo que se haya suprimido.

Si tienes un campo fecha_factura con formato DATE te permitirà trabajar con las partes de la fecha como te decia en los post anteriores Year() y Month() de ellos puedes sacar los periodos y tendrás solucionado el tema de ordenarlos (en la ordenación por el literal Agosto va por delante de Enero!!!).

Finalmente sql no te dará el formato que quieres para la tabla HTML debes construirlo con la programación externa que estes usando php, asp o el que sea.


//Obtengo los periodos
SELECT DISTINCT YEAR(fecha_factura),MONTH(fecha_factura) FROM facturas ORDER BY YEAR(fecha_factura),MONTH(fecha_factura)

//Obtengo las facturas
Select * from tablafacturas order by year(fecha_factura),month(fecha_factura)

Una vez tienes los dos resultset es cuestión de combinar un bucle sobre el primero para obtener los periodos y dentro otro bucle condicionado al periodo actual que obtenga las facturas del segundo resultset...

En seudo codigo

Código PHP:
Ver original
  1. For (periodos){
  2.      imprimo periodo
  3.           For (facturas){
  4.                IF(periodos.periodo==facturas.periodo){
  5.                      imprimo factura
  6.                }
  7.           }
  8. }
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #8 (permalink)  
Antiguo 21/02/2011, 07:10
 
Fecha de Ingreso: septiembre-2010
Ubicación: Santiago, Chile
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con consulta

Hola, muchas gracias quimfv por responder, voy a intertar hacerlo como tu dices y te comentare.

Saludos
  #9 (permalink)  
Antiguo 01/03/2011, 09:41
 
Fecha de Ingreso: septiembre-2010
Ubicación: Santiago, Chile
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con consulta

Hola disculpen la demora de mi respuesta pero es que he estado trabajando mucho, la cosa es que he hecho lo dijo quimfv pero no se en que me equivoco. Este es el codigo
Código PHP:
Ver original
  1. <?php  do
  2.     {
  3.         echo '<tr>';
  4.             echo "<td>".$row_rsPeriodo['fecha']."</td>";
  5.             do
  6.             {  
  7.                 if($row_rsPeriodo['periodo'] == $row_rsFact['periodo'])
  8.                 {
  9.                     echo '<tr>';
  10.                         echo "<td>".$row_rsFact['n_factura']."</td>";
  11.                     echo '</tr>';
  12.                 }
  13.             }while ($row_rsFact = mysql_fetch_assoc($rsFact));
  14.         echo '</tr>';      
  15.     }while ($row_rsPeriodo = mysql_fetch_assoc($rsPeriodo));?>

La cosa es que cuando imprime el segundo periodo no imprime las facturas de ese periodo, no se si me entienden, pero cualquier duda me dicen.

Saludos

Última edición por clavena; 01/03/2011 a las 11:46

Etiquetas: Ninguno
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 05:50.