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

Como validar con un SUM y un BETWEEN

Estas en el tema de Como validar con un SUM y un BETWEEN en el foro de Mysql en Foros del Web. Buenas dias amigos, Tengo muchas dudas en un sistema que estoy desarrollando, ya he creado otro temas referentes a esos tema, y este es para ...
  #1 (permalink)  
Antiguo 13/09/2011, 10:13
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 2
Como validar con un SUM y un BETWEEN

Buenas dias amigos,

Tengo muchas dudas en un sistema que estoy desarrollando, ya he creado otro temas referentes a esos tema, y este es para ver si alguien sabe o me puede guiar con un link sobre:

Tengo una tabla asi:

fecha------------------------velocidad-------router
2011-09-13 13:00---------0.00------------CISCO
2011-09-13 13:00---------0.80------------IRIS
2011-09-13 14:00---------0.90------------LINK
2011-09-13 14:00---------0.00------------CISCO
2011-09-13 15:00---------0.00------------CISCO

Estos registros se realizan automaticamente cada hora, se verifcara cada hora a que velocidad de conexion esta un router, ahora lo que deseo sabes es que router ha tenido la velocidad en 0.00 las ultimas 2 horas

Esto en este ejemplo deberia traerme:

conexion: CISCO (por las ultimas 2 horas su velocidad fue cero) claro tomando en cuanto que ahorita son las 15 horas (3pm)

Es como:

13horas---+--14horas--+---15horas (son las ultimas 2 horas)
0.00-----+-----0.00------+----0.00 = 0.00

Ya que el router entre las ultimas 2 horas (desde las 15 horas hasta las 13horas) su la velocidad ha sido 0.00, ademas quiero que solo muestre el router que cumpla con esosparametros, he estado usando el DISTINCT

La consulta que he armado y no me funciona es:

fecha1 = 2011-09-13 15:00
fecha2 = 2011-09-13 13:00 (le resto 2 horas a la primera)

Código:
$buscar=mysql_query("SELECT DISTINCT router FROM calculo WHERE velocidad='0.00' and (fecha BETWEEN '$fecha2' and '$fecha1')'");
Nose como usar el SUM y el BETWEEN juntos, y que el SUM valide que la velocidad sea 0.00

He probrado con:

Código:
$buscar=mysql_query("SELECT DISTINCT SUM(velocidad),router FROM calculo WHERE velocidad='0.00' and (fecha BETWEEN '$fecha2' and '$fecha1')'");
Auxilio :S
__________________
Ing. Joel Luis
www.sidedesigne.com.ve
+58 426 3362137
BB 24AF8F04
  #2 (permalink)  
Antiguo 13/09/2011, 10:45
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Como validar con un SUM y un BETWEEN

Saludos

Podrias intentarlo de la siguiente manera:

Código MySQL:
Ver original
  1. SELECT SUM(velocidad) as velocidad,router
  2. FROM calculo WHERE fecha BETWEEN '$fecha2' and '$fecha1'
  3. GROUP BY router
  4. HAVING velocidad = 0

Si tienes problemas con el tipo de dato debes castear la columna para que te retorne un entero o decimal ..... CAST(velocidad AS DECIMAL)
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 14/09/2011, 22:52
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Como validar con un SUM y un BETWEEN

Buenas Noches amigo,

Gracias por tu ayuda,

Ya ejecute las pruebas pero no me trae lo que quiero :s

Yo deseo que la consulta me valide: que me muestre que router presento la conexion en 0.00 las ultimas 2 horas, y la consulta actual me muestra es todos los router que entre las ultimas horas presento la conexion en 0.00

Ejemplo:

Si el router a las 13horas, 14horas y 15 horas la conexion fue de 0.00 entonces que si lo muestre sino no.

Osea quiero sumar las conexiones de esas 2 horas y si el resultado es 0.00 es porque en las 2 horas la conexion fue 0.00.

La consulta que estoy usando es:

Código PHP:
Ver original
  1. $buscar=mysql_query("SELECT router FROM calculo WHERE (fecha BETWEEN '$fecha2' and '$fecha1') GROUP BY router HAVING SUM(velocidad)='0.00' order by router ASC");
__________________
Ing. Joel Luis
www.sidedesigne.com.ve
+58 426 3362137
BB 24AF8F04
  #4 (permalink)  
Antiguo 18/09/2011, 10:02
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Como validar con un SUM y un BETWEEN

Buenas Tardes,

Gracias a Nano_ la soluciones era la que me comentaste amigo:

$buscar=mysql_query("SELECT router FROM calculo WHERE (fecha BETWEEN '$fecha2' and '$fecha1') GROUP BY router HAVING SUM(velocidad)='0.00' order by router ASC");

Funciono perfectamente, no me habia dado cuenta :)
__________________
Ing. Joel Luis
www.sidedesigne.com.ve
+58 426 3362137
BB 24AF8F04

Etiquetas: query, registros, select, sql, sum, 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 22:40.