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

Sumar campos mysql

Estas en el tema de Sumar campos mysql en el foro de Mysql en Foros del Web. Hola, tengo la siguiente tabla en mysql: Sumo los campos TAG, PEAJE, ESTACIONAMIENTO y ese resultado lo inserto en el campo GASTOS, con la siguiente ...
  #1 (permalink)  
Antiguo 01/11/2013, 15:47
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Sumar campos mysql

Hola, tengo la siguiente tabla en mysql:


Sumo los campos TAG, PEAJE, ESTACIONAMIENTO y ese resultado lo inserto en el campo GASTOS, con la siguiente sentencia:

Código:
UPDATE tabla SET GASTOS  = (SELECT  (TAG + PEAJE + ESTACIONAMIENTO) GASTOS)
Lo que quiero hacer es automatizar esta sentencia mysql, es decir, cada vez que se ingrese un registro se ejecute esta sentencia y se actualice el campo GASTOS.

Hay alguna forma de hacer esto, o si alguien me puede guiar como hacerlo de otra manera.
De antemano muchas gracias,
Saludos.
  #2 (permalink)  
Antiguo 02/11/2013, 07:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar campos mysql

No tiene sentido que lo hagas, es mas, es peligroso.

Gastos en este caso seria un campo calculado y eso es un error de diseño basico.

Si quieres saber los gastos no tienes que mantener ese campo puedes hacer directamente la consulta

Código MySQL:
Ver original
  1. SELECT  Empresa, (TAG + PEAJE + ESTACIONAMIENTO) GASTOS
  2. FROM tabla

Siempre estará actualizado.

Incluso puedes crear una vista

Código MySQL:
Ver original
  1. CREATE VIEW Gastos AS select Empresa, (TAG + PEAJE + ESTACIONAMIENTO) GASTOS
  2. FROM tabla

Y podras hacer

Código MySQL:
Ver original
  1. SELECT Empresa,Gastos FROM Gastos


La existencia de un campo calculado abre la posibilidad a la inconsistencia de los datos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 02/11/2013 a las 12:27
  #3 (permalink)  
Antiguo 02/11/2013, 13:46
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Sumar campos mysql

Primero muchas gracias por la respuesta.
Pero lo que quiero hacer es mostrar esos gastos en un php, y ademas mostrar la suma de todos los gastos también en php.
Mi idea era mostrar los gastos de la siguiente manera (en php):
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro.
y la suma de todos los gastos asi:
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro.
Por eso que yo los quería guardar en un campo GASTOS.

Como lo podría hacer de la forma que me sugieres tu?

Gracias,
Saludos.

Última edición por gnzsoloyo; 02/11/2013 a las 15:26
  #4 (permalink)  
Antiguo 02/11/2013, 15: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, 4 meses
Puntos: 2658
Respuesta: Sumar campos mysql

Sigue siendo innecesario crear un campo para eso. Se considera una pésima práctica, como ya te dijeron.
¿Para qué quieres guardar un campo con un valor que puedes conseguir directamente y actualizado cuando consultas?
Hacer un
Código MySQL:
Ver original
  1. Empresa, (TAG + PEAJE + ESTACIONAMIENTO) Gastos
  2. FROM tabla
y
Código MySQL:
Ver original
  1. SELECT Empresa, GASTOS
  2. FROM tabla
Le lleva a MySQL exactamente el mismo tiempo, con el agregado de que no necesitas hacer actualizaciones jamás.
No pienses como programador. Piensa como analista de datos: No se guarda lo que puede calcularse. Nunca.
__________________
¿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 03/11/2013, 00:21
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Sumar campos mysql

Muchas gracias por la ayuda, ya lo logre hacer :).
Lo que hice fue lo siguiente:
Para los gastos :
Código MySQL:
Ver original
  1. SELECT (TAG+PEAJE+ESTACIONAMIENTO) AS GASTOS

y para el total de los gastos:
Código MySQL:
Ver original
  1. SUM(TAG+PEAJE+ESTACIONAMIENTO)

Y asi lo mostre en php, era mucho mas fácil de lo que yo pensaba.
Denuevo muchas gracias, y tendre desde ahora muy en cuenta lo de no guardar los campos que son calculables.

Bendiciones.

Etiquetas: php
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:24.