Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2013, 05:31
Valkirios
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 9 meses
Puntos: 0
Error al querer hacer un trigger con la función max()

Saludos a todos y felices fiestas!

Estoy trasteando con los triggers ya que nunca he hecho uno y me interesa aprender.

Bien, tengo dos tablas BICICLETA y RECORRIDO, y quiero que al crear en la base de datos un nuevo registro en la tabla RECORRIDO, el trigger coja el numero de KM que tiene el nuevo recorrido y se añada en la tabla BICICLETA dentro de la Bicicleta que corresponda.

El problema viene cuando quiero obtener el ID de la bicicleta cogiendo el ultimo registro que se ha introducido en la tabla recorrido, ya que me da fallo al crear el trigger y me salta el siguiente mensaje:

'No puede aparecer un agregado en la cláusula WHERE si no es en una subconsulta contenida en una cláusula HAVING o en una lista de selección, y siempre que la columna agregada sea una referencia externa.'


La sentencia que tengo es la siguiente:

CREATE TRIGGER ACTUALIZACION_KILOMETROS11
ON RECORRIDO
AFTER INSERT
AS
BEGIN
UPDATE BICICLETA
SET KILOMETROS = KILOMETROS + NUMERO_KILOMETROS
FROM RECORRIDO
WHERE BICICLETA.ID_BICICLETA=RECORRIDO.ID_BICICLETA AND RECORRIDO.FECHA_RECORRIDO = MAX(RECORRIDO.FECHA_RECORRIDO);
END;

Veis algo mal? puede que este metiendo la pata hasta el fondo ya que soy novato en los triggers pero me estoy volviendo loco y no sé por que me puede petar.

Un abrazo y gracias anticipadas!