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

[SOLUCIONADO] suma entre rango de fechas mysql y php

Estas en el tema de suma entre rango de fechas mysql y php en el foro de Mysql en Foros del Web. hola buenas tarde amigos una duda como se puede ir sumando o sumar fechas en mysql y devolver un numero entero ej; tengo una tabla ...
  #1 (permalink)  
Antiguo 23/09/2013, 13:11
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
suma entre rango de fechas mysql y php

hola buenas tarde amigos una duda como se puede ir sumando o sumar fechas en mysql y devolver un numero entero
ej; tengo una tabla llamada ventas

Código MySQL:
Ver original
  1. codigo----Fecha_V
  2. 0123------2013-09-01>del 1 al 9   = 9
  3. 0123------2013-09-09>del 9 al 21 = 12
  4. 0123------2013-09-21>del 21 al 23 = 2
  5. 0123------2013-09-23>de 23 al 23 =0
  6.  
  7. y al final quiero k me sumer 9+12+2=23 lo hice con un
  8.  
  9. select codigo,sum(fecha_v)as dias from ventas where codigo='0123'
  10. pero esto me devuelve muchos numeros 9590673
  #2 (permalink)  
Antiguo 23/09/2013, 13:58
Avatar de hmvr414  
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: suma entre rango de fechas mysql y php

como los intervalos son consecutivos y podrías en lugar de sumar los días calcular la diferencia entre la primera y ultima fecha
http://www.sqlfiddle.com/#!2/4577c/1
  #3 (permalink)  
Antiguo 23/09/2013, 14:10
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: suma entre rango de fechas mysql y php

ok y por ejemplo si hago esta consulta
Código MySQL:
Ver original
  1. SELECT DISTINCT codigo, sum( fecha_v ) AS dia
  2. FROM ventas  WHERE codigo = '0123'

me devuelve 60392268 como pasar este numero a dias o numero entero
  #4 (permalink)  
Antiguo 23/09/2013, 14:14
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, 5 meses
Puntos: 2658
Respuesta: suma entre rango de fechas mysql y php

En principio, debería estar devolviendote un error, porque le falta un GROUP BY a tu query, desde el momento que hay una columna no afectada por funciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/09/2013, 14:22
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: suma entre rango de fechas mysql y php

pues no me genera ningun error mi consulta es esta
Código MySQL:
Ver original
  1. SELECT DISTINCT codigo, sum( fecha_v ) AS dia
  2. FROM ventas WHERE codigo BETWEEN '0123' AND '033p' GROUP BY codigo
  3.  
  4. y me devuelve
  5.  
  6. codigo----dias
  7. 0123------20130720
  8. 033p-----60392268

pero kiero k me devuelva la suma en dias 1,4,9 o 15 dias por ejemplo
  #6 (permalink)  
Antiguo 23/09/2013, 14:30
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, 5 meses
Puntos: 2658
Respuesta: suma entre rango de fechas mysql y php

Lo que en ese caso estás haciendo es sumar las fechas, y eso MySQL lo hace sumando el valor completo en FLOAT que la fecha tiene, por lo que en realidad el resultado será cualquier cosa menos algo coherente. No representará nada.
Ahora bien, si lo que quieres es sumar algo como:
Cita:
codigo----Fecha_V
0123------2013-09-01>del 1 al 9 = 9
0123------2013-09-09>del 9 al 21 = 12
0123------2013-09-21>del 21 al 23 = 2
0123------2013-09-23>de 23 al 23 =0
Eso no es una query cualquiera. Hay que aplicar funciones, y de hecho la mejor forma es hacerlo con funciones almacenadas (stored function), ya que de lo contrario la query quedará bastante complicada (usando IF()), o muy ineficiente (usando CASE).
Explica con más claridad la idea de lo que quieres lograr, para ver si hay un modo simple y genérico de conseguirlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/09/2013, 14:49
Avatar de hmvr414  
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: suma entre rango de fechas mysql y php

resta las fechas

Código MySQL:
Ver original
  1. SELECT codigo,
  2.  
  3.   DATEDIFF((SELECT MAX(fecha) FROM tblFechas F WHERE F.codigo = tblFechas.codigo),
  4.           (SELECT MIN(fecha) FROM tblFechas F WHERE F.codigo = tblFechas.codigo))+1 AS dias
  5.  
  6. FROM tblFechas WHERE codigo =  '033p'
  7. GROUP BY codigo, dias;
  #8 (permalink)  
Antiguo 23/09/2013, 15:25
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: suma entre rango de fechas mysql y php

muchas gracias a todos al final lo resolvi asi se k kiza no es la mejor opcion pero se me ocurrio jeje

Cita:
Editado: Código de programación no permitido en foros de BBDD.
saludos

Última edición por gnzsoloyo; 23/09/2013 a las 16:14 Razón: Leer las normas del foro de BBDD, por favor.
  #9 (permalink)  
Antiguo 23/09/2013, 16:14
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, 5 meses
Puntos: 2658
Respuesta: suma entre rango de fechas mysql y php

@Ilidam: Este es un foro de Bases de Datos, no de programación en lenguajes de ningún tipo. Tiene normas que puedes leer en el primer post de cada subforo.

Por otro lado, no respondiste la pregunta hecha, de la cual puede salir una solución muchísimo mas sencilla. tomate el tiempo de contestar lo que se te pide, y tendrás soluciones más adecuadas.
Lo que quieres hacer, según lo que parece planteado en tu primer post, es posible, pero la consulta es algo compleja, como ya te dije. Si nos aclaras mejor lo que quieres, la solución está al alcance de la mano, y sin tener que hacer híbridos de programación, que a la larga terminan siendo "parches" que hay que volver a hacer.
Saludos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 24/09/2013, 11:39
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: suma entre rango de fechas mysql y php

ah ok muchas gracias gnzsoloyo
lo k yo queria era ir sumando los dias de venta de cada articulo pero como todo esta en una sola tabla por eso no sabia como sumar los dias pasados entre cada venta para saber mas o menos cada cuanto se venden cada articulo ese era el proposito
saludos y muchas gracias por el consejo :D

Etiquetas: php, rango, select, sql, suma, 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 17:03.