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

Duda sobre consulta

Estas en el tema de Duda sobre consulta en el foro de Bases de Datos General en Foros del Web. Esta sentencia sql es de MYSQL Tengo la siguiente consulta: (el campo i_m . es hora monitoreo) SELECT camara, sum( CASE WHEN i_m BETWEEN '08:00:00' ...
  #1 (permalink)  
Antiguo 31/07/2009, 11:13
Avatar de metalsarra  
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Duda sobre consulta

Esta sentencia sql es de MYSQL
Tengo la siguiente consulta: (el campo i_m . es hora monitoreo)
SELECT camara, sum(
CASE WHEN i_m
BETWEEN '08:00:00'
AND '20:00:00'
THEN 1
ELSE 0
END ) AS Total1, sum(
CASE WHEN i_m >= '20:00:01'
AND i_m <= '23:59:59'
THEN 1
ELSE 0
END ) AS Total2000, sum(
CASE WHEN date_format( concat( fecha, ' ', i_m ) , '%Y-%m-%d %H:%i:%s' )
BETWEEN date_format( concat( date_add( '2009-07-22', INTERVAL 1
DAY ) , ' ', '00:00:01' ) , '%Y-%m-%d %H:%i:%s' )
AND date_format( concat( date_add( '2009-07-30', INTERVAL 1
DAY ) , ' ', '07:59:59' ) , '%Y-%m-%d %H:%i:%s' )
THEN 1
ELSE 0
END ) AS Total0008
FROM tbl_general
WHERE fecha >= '2009-07-22'
AND fecha <= '2009-07-30'
GROUP BY camara
LIMIT 0 , 30
Lo que pretendo es lo siguiente:
Que me de un total por turnos( osea de 8:00 a 20:00 y 20:00:01 a 07:59:59).
pero yo lo dividi en 3 partes:
que en Total1 que corresponde de 8:00 a 20:00 sin problemas por k es el mismo dia.
Total2000 es de 20:00 a 23:59:59 sin problemas es el mismo dia.
Total0008 ques de 00:00:00 a 07:59:59 pero del sigi dia, en este turno no calcula bien la cuenta y no encuentro el error, alguien que me pueda ayudar.

La idea principal seria que si hago consultas por turno por ejemplo 2009-07-22 al 2009-07-30
en el pimer turno comienza el 22 a las 8:00 y termina 20:00
pero el segundo turno comienza 22 pero a las 20:00:01 y termina el 31 a las 7:59:59. es donde esta el detalle, saludos

Última edición por metalsarra; 31/07/2009 a las 13:34
  #2 (permalink)  
Antiguo 31/07/2009, 12:57
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, 6 meses
Puntos: 2658
Respuesta: Duda sobre consulta

No me queda claro qué DBMS estás usando...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/07/2009, 14:13
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Duda sobre consulta

Es MySQL, lo dice al inicio.
Lo que yo no entiendo es porque la gente no postea en el foro correspondiente.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 31/07/2009, 14:17
Avatar de metalsarra  
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Duda sobre consulta

Hola que tal amigos, ya solucione el problema, saludos y gracias por todo
  #5 (permalink)  
Antiguo 31/07/2009, 14:18
Avatar de metalsarra  
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Duda sobre consulta

Ha olvidaba, flaviovich la pregunta esta en el lugar correcto porque es de base de datos,
  #6 (permalink)  
Antiguo 31/07/2009, 14:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Duda sobre consulta

Tampoco entiendo por que no responden como solucionan los problemas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 31/07/2009, 14:49
Avatar de metalsarra  
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Duda sobre consulta

LA solucion del problema fue la siguiente:
SELECT camara, sum(
CASE WHEN fecha >= '2009-07-22'
AND fecha <= '2009-07-30'
AND i_m
IN (

SELECT i_m
FROM tbl_general
WHERE i_m >= '08:00:01'
AND i_m <= '20:00:00'
)
THEN 1
ELSE 0
END ) ASTotal1, sum(
CASE WHEN fecha >= '2009-07-22'
AND fecha <= '2009-07-30'
AND i_m
IN (

SELECT i_m
FROM tbl_general
WHERE i_m >= '20:00:01'
AND i_m <= '23:59:59'
)
THEN 1
ELSE 0
END ) AS Total2000, sum(
CASE WHEN fecha > '2009-07-22'
AND fecha <= date_add( '2009-07-30', INTERVAL 1
DAY )
AND i_m
IN (

SELECT i_m
FROM tbl_general
WHERE i_m >= '00:00:01'
AND i_m <= '07:59:59'
)
THEN 1
ELSE 0
END ) AS Total0008
FROM tbl_general
GROUP BY camara
LIMIT 0 , 30

Espero que ayude a alguien y estoy asu disposicion para cualquier asesoria, mi correo es metalsarra@gmailcom
saludos.
--Lo mejor de todo es compartir.--
  #8 (permalink)  
Antiguo 31/07/2009, 17:22
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Exclamación Respuesta: Duda sobre consulta

Cita:
Iniciado por metalsarra Ver Mensaje
Ha olvidaba, flaviovich la pregunta esta en el lugar correcto porque es de base de datos,
Tal vez no te has dado cuenta pero existe un foro llamado MySQL, su link es: http://www.forosdelweb.com/f86/
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 03/08/2009, 07:57
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 10 meses
Puntos: 13
Respuesta: Duda sobre consulta

puedo reirme?
jajajjjaja


gracias metalsarra por haber dejado la respuesta!!
pero es cierto, si bien este foro es de base de datos, hay uno exclusivo para mysql, el link está justo de donde pusiste crear nuevo tema!

saludos!
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 12:45.