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

consulta o funcion con un trigger

Estas en el tema de consulta o funcion con un trigger en el foro de SQL Server en Foros del Web. Necesito ayuda ya que tengo broncas con un trigger es un pequeño trabajo de escuela pero estoy ya desesperado que no logro compilarlo bien, les ...
  #1 (permalink)  
Antiguo 10/06/2012, 14:44
 
Fecha de Ingreso: junio-2012
Ubicación: torreon
Mensajes: 12
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta consulta o funcion con un trigger

Necesito ayuda ya que tengo broncas con un trigger es un pequeño trabajo de escuela pero estoy ya desesperado que no logro compilarlo bien, les proporciono todo el codifo

go
use master
go
drop database carrillo
go
create database carrillo
go
use carrillo
go

create table productos
(
id_productos int primary key,
nombre_producto nvarchar(100),
descripcion nvarchar(100),
unidades nvarchar(100),
precio int
)


create table pais
(
id_pais int primary key,
nombre nvarchar(100),
costo int
)


create table proveedor
(
id_proveedor int primary key,
nombre nvarchar(100),
direccion nvarchar(100),
telefono nvarchar(100)
)


create table cliente
(
id_cliente int primary key,
nombre nvarchar(100),
direccion nvarchar(100),
telefono nvarchar(100)
)

create table exportacion
(
id_exportacion int primary key,
id_pais int foreign key (id_pais)references pais (id_pais),
id_productos int foreign key (id_productos) references productos (id_productos),
id_proveedor int foreign key (id_proveedor) references proveedor (id_proveedor),
id_cliente int foreign key (id_cliente) references cliente (id_cliente),
fecha nvarchar(100),
cantidad nvarchar(100)
)

create table concentrado
(
id_productos int foreign key (id_productos) references productos (id_productos),
id_exportacion int foreign key (id_exportacion) references exportacion (id_exportacion),
id_concentrado int primary key identity (1,1),
gastos nvarchar (200),
)

insert into cliente (id_cliente,nombre,direccion,telefono)
values(1,'arturo','callevieja 50','123123')


insert into proveedor (id_proveedor,nombre,direccion,telefono)
values (1,'vaquecia','avenidavivanorye','12345678')

/*TRIGGER*/------
go
create trigger gastos_exportaciones on exportacion
for insert as
begin
declare @productos int
declare @gasto int
declare @cantidad int
declare @precio int
declare @exportacion int

declare @pais int

select @productos = id_productos, @cantidad = cantidad, @exportacion = id_exportacion, @gasto = gasto
from inserted
select @precio = precio
from productos where id_productos = @productos


select @gasto =(@cantidad * @precio) + costo, @pais = id_pais
from pais where id_pais = @pais
insert into concentrado values (@productos, @exportacion, @gasto)
end
go

select @productos = id_productos, @cantidad = cantidad
from inserted
select @precio = precio
from productos where id_productos = @productos*/

insert into productos (id_productos,nombre_producto,descripcion,unidades ,precio)
values (1,'leche','vaquitafeliz','1','30')

insert into pais(id_pais,nombre,costo)
values (1,'venezuela','4000')


insert into exportacion(id_exportacion,id_pais,id_productos,id _proveedor,id_cliente,fecha,cantidad)
values(1,1,1,1,1,'051212','10')


select * from concentrado

select proveedor.nombre,nombre_producto,unidades
from proveedor inner join exportacion on proveedor.id_proveedor=exportacion.id_proveedor
inner join productos on exportacion.id_productos=productos.id_productos

Donde la funcion del trigger es llenar una tabla con un concentrado de gastos de las exportaciones, ahi por favor aver tambien si me ayudan a corregir que errores tengo
  #2 (permalink)  
Antiguo 11/06/2012, 07:17
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: consulta o funcion con un trigger

y cuales son los errores, que no hace bien, que le falta? porque asi a buenas a primeras pues ni idea de donde este fallando...
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 11/06/2012, 09:24
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta o funcion con un trigger

se requiere la presencia de los adivinos !!
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 11/06/2012, 13:18
 
Fecha de Ingreso: junio-2012
Ubicación: torreon
Mensajes: 12
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: consulta o funcion con un trigger

bueno perdon deje muestro el trigger corregido
go
create trigger gastos_exportaciones on exportacion
for insert as
begin
declare @productos int
declare @gastos int
declare @cantidad int
declare @precio int
declare @exportacion int
declare @pais int
declare @idcount int

select @productos = id_productos, @cantidad = cantidad, @exportacion = id_exportacion
from inserted
select @precio = precio from productos where id_productos = @productos
select @gastos =(@cantidad * @precio)+costo from pais where id_pais = @productos
insert into concentrado values (@productos, @exportacion, @gastos)

select @idcount = count(*)from concentrado
select id_productos, id_exportacion, gastos from concentrado where id_concentrado = @idcount

end
go

me aroja el resultado

id_productos id_exportacion gastos
1 1 4300
id_productos id_exportacion gastos
2 2 3500
id_productos id_exportacion gastos
3 3 5000


entonces lo que quiero esque los gastos sea maximo y que solo me salga un solo registro.. ya no se que mas hacer haber si me ayudan porfas
  #5 (permalink)  
Antiguo 11/06/2012, 13:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: consulta o funcion con un trigger

a lo que entiendo puede ser asi:

select @idcount=idcount from concentrado where gastos=(select max(concentrado) from concentrado)
select id_productos, id_exportacion, gastos from concentrado where id_concentrado = @idcount


Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 12/06/2012, 09:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta o funcion con un trigger

En esta linea:

select @productos = id_productos, @cantidad = cantidad, @exportacion = id_exportacion
from inserted

Estas 100% seguro que INSERTED trae solamente una linea?
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 18/06/2012, 12:41
 
Fecha de Ingreso: junio-2012
Ubicación: torreon
Mensajes: 12
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: consulta o funcion con un trigger

claro que si ya me salio como me debia... muchas gracias

Etiquetas: funcion, insert, select, tabla, trigger
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 00:25.