Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2014, 05:22
igebe
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Trigger calculo consumo

Buenos días amigos, antes de nada decir que llevo usando este foro de forma anonima un par de meses y que vuestras contribuciones me ayudan muchisimo tanto en Java como en MySQL. Muchas gracias!

Hoy decidí registrarme a ver si encuentro una solución al problema que me surgió.

Estoy realizando el proyecto de fin de ciclo de ASIR y cree una base de datos basada en una empresa de autobuses.

Os pongo las dos tablas que he creado y os detallo el problema que me surge.

Código SQL:
Ver original
  1. CREATE TABLE vehiculos
  2. (
  3. Cod_Veh  INT NOT NULL,
  4. Matricula VARCHAR(7),
  5. Modelo VARCHAR(20),
  6. Capacidad_deposito INT,
  7. Km_totales INT,
  8. Ultimo_repostaje DATE,
  9. Consumo_medio_ultimo_deposito FLOAT,
  10.  
  11. PRIMARY KEY (Cod_Veh)
  12.  
  13. );
  14.  
  15.  
  16. DROP TABLE IF EXISTS repostajes;
  17.  
  18. CREATE TABLE repostajes
  19. (
  20. Cod_Rep   INT   NOT NULL,
  21. Cod_Veh  INT NOT NULL,
  22. Fecha DATE,
  23. Kilometros INT,
  24. Litros_repostados INT,

Pues bien, necesito crear un trigger que me permita insertar el consumo medio desde el ultimo repostaje, para eso necesito un trigger de este estilo:
Código SQL:
Ver original
  1. CREATE TRIGGER repostajes
  2. BEFORE UPDATE ON repostajes
  3. FOR EACH ROW SET
  4.                 vehiculos.Km_totales=NEW.Kilometros,
  5.                 vehiculos.Ultimo_repostaje=NEW.Fecha,
  6.                 vehiculos.Consumo_medio_ultimo_deposito=(NEW.Litros_repostados * 100) / (Kmultimorepostaje - Kmpenultimo repostaje);

Lo que necesito saber es si hay alguna forma que al introducir un nuevo repostaje, mire esos km que acabas de meter y les reste el mismo campo del anterior repostaje con el mismo codigo de vehiculo.

Estoy muy verde en MySQL porque el tema de automatización lo dimos en el tercer trimestre, que por motivos de saludo no pude asistir.

Muchas gracias y un saludo!

Última edición por gnzsoloyo; 19/11/2014 a las 06:25