Ayuda con trigger

28/03/2006 - 21:20 por sharline78 | Informe spam
Hola, ojalá me puedan ayudar con 2 triggers. Necesito uno que me
calcule el importe d una lesión
(campo importe) y el número de sesionesv(campo numsesiones) para una
lesión. El importe se debe obtener como la suma de los importes de las
sesiones cuyo lesion.idlesion=sesion.idlesion y numsesiones si no m
ekivoco sería l número d filas q cumplen q
lesiones.idlesion=sesiones.idlesion e idlesion=@idlesion

Las tablas son:

-campos de la tabla lesiones:
idlesion
fechalesion
moticonsulta
etc.
numsesiones
importe


-campos de la tabla sesiones:
idsesion
idlesion
fecha
etc...
importe

create trigger Importe_Lesion
on sesiones
for insert,update,delete
as
if insert(importe)

if update(importe)

begin
update lesiones
set importe importe + (
select sum(s.importe)
from inserted S
where s.idlesion=lesiones.idlesion and idlesion=@idlesion
)
where exists(
select * from inserted as S
where lesiones.idlesion=S.idlesion and idlesion=@idlesion
)

end


if delete(importe)


create trigger NumSesiones
on sesiones
for insert,update,delete
as
...
 

Leer las respuestas

#1 Alejandro Mesa
28/03/2006 - 23:31 | Informe spam
Trata,

update lesiones
set importe = (
select sum(importe)
from sesiones S
where s.idlesion = lesiones.idlesion
)
where exists(
select *
from (select idlesion from inserted union all select idlesion from deleted)
as a
where a.idlesion = lesiones.idlesion
)


AMB


"" wrote:

Hola, ojalá me puedan ayudar con 2 triggers. Necesito uno que me
calcule el importe d una lesión
(campo importe) y el número de sesionesv(campo numsesiones) para una
lesión. El importe se debe obtener como la suma de los importes de las
sesiones cuyo lesion.idlesion=sesion.idlesion y numsesiones si no m
ekivoco sería l número d filas q cumplen q
lesiones.idlesion=sesiones.idlesion e idlesion=@idlesion

Las tablas son:

-campos de la tabla lesiones:
idlesion
fechalesion
moticonsulta
etc.
numsesiones
importe


-campos de la tabla sesiones:
idsesion
idlesion
fecha
etc...
importe

create trigger Importe_Lesion
on sesiones
for insert,update,delete
as
if insert(importe)

if update(importe)

begin
update lesiones
set importe importe + (
select sum(s.importe)
from inserted S
where s.idlesion=lesiones.idlesion and idlesion=@idlesion
)
where exists(
select * from inserted as S
where lesiones.idlesion=S.idlesion and idlesion=@idlesion
)

end


if delete(importe)


create trigger NumSesiones
on sesiones
for insert,update,delete
as



Preguntas similares