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

Consulta utilizado fechas

Estas en el tema de Consulta utilizado fechas en el foro de Mysql en Foros del Web. Buenos días a todos: Realicé la siguiente consulta a mi base de datos Código PHP: $sen  =  "SELECT count(c.id) AS com, t.tra, u.nom AS uni         FROM com AS c         LEFT JOIN(SELECT t.uni AS uni, count(t.id) AS tra                   FROM tras AS t                   WHERE t.fecha >= '" . $data [ ...
  #1 (permalink)  
Antiguo 16/07/2010, 09:46
 
Fecha de Ingreso: marzo-2010
Ubicación: Guadalajara, Jal
Mensajes: 91
Antigüedad: 14 años, 1 mes
Puntos: 1
Consulta utilizado fechas

Buenos días a todos:

Realicé la siguiente consulta a mi base de datos

Código PHP:
$sen "SELECT count(c.id) AS com, t.tra, u.nom AS uni
        FROM com AS c
        LEFT JOIN(SELECT t.uni AS uni, count(t.id) AS tra
                  FROM tras AS t
                  WHERE t.fecha >= '"
.$data['fecha_ini']."' AND t.fecha <= '".$data['fecha_fin']."'
                  GROUP BY uni) AS t ON t.uni=c.uni
        LEFT JOIN(SELECT u.nom AS nom, u.id FROM uni AS u) AS u ON u.id=c.uni
        WHERE c.fecha >= '"
.$data['fecha_ini']."' AND c.fecha <= '".$data['fecha_fin']."'
        GROUP BY uni"
;

$sql "$sen";
$query $mysql->query($sql); 
La consulta me arroja los resultados esperados, todo está bien dentro de esta consulta. Lo que necesito hacer ahora, por medio de la consulta anterior, es lo siguiente:

El usuario debe seleccionar de qué día a qué día realizar su consulta. Si son menos de 7 días entonces en otro formulario me tiene que arrojar los resultados de la consulta del primer día al sexto día, una columna por día.

Pero si son 7 días o más, entonces tengo que mostrar los resultados por número de semana, es decir, que me indique cuántos datos hay de la semana tal a la semana tal.

Investigué y creo que mi solución está en utilizar la función curdate() dentro de mi consulta, pero la verdad es que ya lo intenté en varias ocasiones y no me ha funcionado. Espero haberme dado a entender y alguien pueda ayudarme.

Gracias!
  #2 (permalink)  
Antiguo 16/07/2010, 10:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta utilizado fechas

Mira esto http://dev.mysql.com/doc/refman/5.0/...functions.html

Con especial enfasis en las funciones dayofweek, curdate etc.

Sin embargo, creo que esta salida es mas cuestion de php que de mysql como tal
ssaludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 16/07/2010, 10:57
 
Fecha de Ingreso: marzo-2010
Ubicación: Guadalajara, Jal
Mensajes: 91
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Consulta utilizado fechas

Gracias huesos, efectivamente ahi me encontré con estas funciones antes de postear mi duda, de hecho lo intenté hacer con la función curdate(), y posteriormente hice un intento con date_add(), pero no me resultó lo que yo quería.

Necesito hacer que me aparezcan las consultas del 1 al 3 de julio de 2010, por ejemplo, con los requerimientos necesarios y listo, eso ya lo tengo; mi problema está al momento de mostrar la consulta por cada uno de los días, es decir, que me muestre los datos capturados el día 1, día 2, día 3, por separado.

Alguna idea de cómo hacerlo? Estoy intentando por medio de código en php, de hecho estoy checando el manual en línea, para saber si hay alguna función que me pueda ayudar.

Espero obtener alguna idea de ustedes, muchas gracias!!!
  #4 (permalink)  
Antiguo 16/07/2010, 12:12
 
Fecha de Ingreso: marzo-2010
Ubicación: Guadalajara, Jal
Mensajes: 91
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Consulta utilizado fechas

alguien más que me pueda ayudar???
  #5 (permalink)  
Antiguo 16/07/2010, 14:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Consulta utilizado fechas

que onda brooo!!!!!!!!! no se que fumaste, jejjejejejjeje.

pero tu consulta esta muy fumada, jejejjeje.

te recomiendo el dilema divide y venceras.

en fin en concreto quieres restar dias de la fecha actual, si me respondes con algo en concreto te puedo ayudar

saludos
  #6 (permalink)  
Antiguo 16/07/2010, 16:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta utilizado fechas

Cita:
El usuario debe seleccionar de qué día a qué día realizar su consulta. Si son menos de 7 días entonces en otro formulario me tiene que arrojar los resultados de la consulta del primer día al sexto día, una columna por día.
Esto lo resuelves en el PHP, y creas una sentencia específica para ello. El encolumnado lo deberías resolver también en PHP, porque de lo contrario lo único que lograrás será complicarte la vida con SQL.
MySQL no cuenta con cláusula PIVOT para invertir una tabla.

Cita:
Pero si son 7 días o más, entonces tengo que mostrar los resultados por número de semana, es decir, que me indique cuántos datos hay de la semana tal a la semana tal.
¿Datos o días?
Si son datos, sólo tienes que agrupar los resultados por el número de semana de la fecha
Código MySQL:
Ver original 

Si son días y luego separada la tabla por semanas, lo más simple es:
Código MySQL:
Ver original
  1. DATEDIFF(fechahasta, fechadesde)
el CURDATE en este caso reemplaza una u otra fecha, e incluso si quieres acumulados por día, simplemente tienes que luego, en la consulta final, agrupar por fecha
Código MySQL:
Ver original
  1. GROUP BY DATE(fecha)

Tip:
Observando tu consulta, me parece que es innecesariamente compleja y que podría ser escrita de una forma más eficiente...
Habría que intentarlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fechas, utilidades
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 22:29.