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

Guardar la suma de los valores de un campo en un registro

Estas en el tema de Guardar la suma de los valores de un campo en un registro en el foro de Bases de Datos General en Foros del Web. Hola, antes que nada quiero saludar a todos y comentarles que soy nuevo en todo esto tanto en los foros como en las bases de ...
  #1 (permalink)  
Antiguo 05/11/2013, 10:38
 
Fecha de Ingreso: noviembre-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Pregunta Guardar la suma de los valores de un campo en un registro

Hola, antes que nada quiero saludar a todos y comentarles que soy nuevo en todo esto tanto en los foros como en las bases de datos.
ahora sí vamos al grano.

El caso es que tengo una tabla con los campos

KM_inical
KM_final
recorrido_día
total_recorrido

lo que hice en el formulario fue que al momento de salir de KM_final pusiera el resultado de la resta de KM_final-KM_inicial en recorrido_día y lo almacenara y quedo así:

Cita:
Editado: Codigo de programacion no permitido en Foros de BB.DD.
después lo que hice es usar la función SUMA para sumar todos los registros del campo es decir SUMA([recorrido_día]) esto lo puse en el origen de control en total_recorrido, me hace la operación pero no lo almacena en la tabla.

¿Que puedo hacer?

De ante mano muchas gracias
  #2 (permalink)  
Antiguo 05/11/2013, 10:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Guardar la suma de los valores de un campo en un registro

Cita:
¿Que puedo hacer?
No lo almacenes...
No tiene ningún sentido almacenar un valor calculable (por principios de diseño no se hace), y menos aún un valor que es calculable sobre valores que están en el mismo registro.
Lo que quieres se obtiene en la misma consulta, por ejemplo:
Código SQL:
Ver original
  1. SELECT recorrido_día, SUM(KM_final - KM_inical) total_recorrido
  2. FROM tabla
  3. GROUP BY recorrido_día

o bien:
Código SQL:
Ver original
  1. SELECT KM_inical, KM_final, recorrido_día, SUM(KM_final - KM_inical) total_recorrido
  2. FROM tabla
  3. GROUP BY KM_inical, KM_finall recorrido_día
__________________
¿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 05/11/2013, 10:52
 
Fecha de Ingreso: noviembre-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: Guardar la suma de los valores de un campo en un registro

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No lo almacenes...
No tiene ningún sentido almacenar un valor calculable (por principios de diseño no se hace), y menos aún un valor que es calculable sobre valores que están en el mismo registro.
Lo que quieres se obtiene en la misma consulta, por ejemplo:
Código SQL:
Ver original
  1. SELECT recorrido_día, SUM(KM_final - KM_inical) total_recorrido
  2. FROM tabla
  3. GROUP BY recorrido_día

o bien:
Código SQL:
Ver original
  1. SELECT KM_inical, KM_final, recorrido_día, SUM(KM_final - KM_inical) total_recorrido
  2. FROM tabla
  3. GROUP BY KM_inical, KM_finall recorrido_día

Gracias por responder tan rápido, pero el problema es que necesito almacenar esos datos por que la persona que va a utilizar la base solo quiere agregar los datos obtener resultados y sacar los informes mensualmente, no se mete en nada de consultas ni código...
  #4 (permalink)  
Antiguo 05/11/2013, 10:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Guardar la suma de los valores de un campo en un registro

crea una vista y listo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 05/11/2013, 10:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Guardar la suma de los valores de un campo en un registro

Cita:
Iniciado por reynaldo_gabinop Ver Mensaje
Gracias por responder tan rápido, pero el problema es que necesito almacenar esos datos por que la persona que va a utilizar la base solo quiere agregar los datos obtener resultados y sacar los informes mensualmente, no se mete en nada de consultas ni código...
¿Y no te parece que en ese caso, eso se resuelve en la programación?
¿Por qué necesita saber cómo obtiene los datos? Eso debería ser transparente a la hora de utilizarlo el usuario. Es lógica interna de la aplicación...

Haz lo que te dice @Libras: Con una vista alcanza. No necesita saber cómo se crea el dato.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 06/11/2013, 08:58
 
Fecha de Ingreso: noviembre-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: Guardar la suma de los valores de un campo en un registro

Cita:
Iniciado por Libras Ver Mensaje
crea una vista y listo :)
una vista? podrías explicarme como hacerla?
gracias
  #7 (permalink)  
Antiguo 06/11/2013, 08:58
 
Fecha de Ingreso: noviembre-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: Guardar la suma de los valores de un campo en un registro

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Y no te parece que en ese caso, eso se resuelve en la programación?
¿Por qué necesita saber cómo obtiene los datos? Eso debería ser transparente a la hora de utilizarlo el usuario. Es lógica interna de la aplicación...

Haz lo que te dice @Libras: Con una vista alcanza. No necesita saber cómo se crea el dato.
Lo intentaré, muchas gracias por responder :DD

Etiquetas: campo, registro, 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 06:00.