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

Orientación

Estas en el tema de Orientación en el foro de Mysql en Foros del Web. Buenos dias Más que nada lo que necesito es información para plantear una especie de calendario y que opineis de como lo haríais. Expongo el ...
  #1 (permalink)  
Antiguo 18/10/2012, 02:02
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
Orientación

Buenos dias

Más que nada lo que necesito es información para plantear una especie de calendario y que opineis de como lo haríais. Expongo el problema;

Tengo una páginas de estadísticas, la cual muestra unos datos dependiendo de las opciones escogidas en el filtro (edad, sexo, idioma... etc.)

La opción 'Period' sirve decir como mostrar y agrupar los registros. La idea es, si period==day se muestra el ultimo dia con sus datos y en la cabecera se pone el dia, si se pone period==week se tienen que mostrar los 7 dias de la semana aqui me viene el problema de planteamiento. Me explico:

Lo que pretendo hacer es, si hoy es jueves 18/oct/2012 que me ponga por ejemplo:

LUNES MARTES MIERCOLES JUEVES VIERNES SABADO DOMINGO
-------------------------------------------------------
5********6******** 0************1********0********0********0

El problema me surge cuando por ejemplo en la bd por ejemplo como el miercoles,vicernes,sabado, domingo no hay nada registrado (bien porque no ha habido actividad o bien porque aún no ha llegado ese dia) no me lo guarda obviamente en la bd por lo que me aparece algo tal que así:

LUNES MARTES JUEVES
-----------------
5********6********1


¿Es decir, quiero mostrar los dias naturales y si coincide que en esa fecha hay dato mostrarlo? es posible esto con sql?

Gracias como siempre
  #2 (permalink)  
Antiguo 19/10/2012, 07:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Orientación

Manual

Cita:
WEEKDAY(date)


Returns the weekday index for date (0 = Monday, 1 = Tuesday, … 6 = Sunday).

mysql> SELECT WEEKDAY('2008-02-03 22:23:00');
-> 6
mysql> SELECT WEEKDAY('2007-11-06');
-> 1
Código MySQL:
Ver original
  1. SELECT SUM(if(WEEKDAY(fecha)=0,1,0)) as Lunes,
  2.            ...
  3.            SUM(if(WEEKDAY(fecha)=6,1,0)) as Domingo
  4.            FROM tuTabla
  5.            WHERE fecha BETWEEN 'starting date' AND 'ending date';

Esto puede servir siempre que calcules bien las fechas inicial y final...la inicial debe ser un lunes y la final el domingo que le sigue.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/10/2012 a las 07:29
  #3 (permalink)  
Antiguo 21/10/2012, 05:42
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Orientación

Muchas gracias por la ayuda.

Te mantendré al tanto de los avances

Gracias!

Etiquetas: registros, sql
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 14:15.