Hola Grupo
Tengo lo siguiente tablas
CREATE TABLE [dbo].[Despacho] (
[DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[DispositivoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Fecha] [datetime] NULL ,
[Cantidad] [decimal](18, 0) NULL ,
[Precio] [float] NULL ,
[Numero_Orden] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
,
[Detalle_orden] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Codigo_ProductoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[Tecnicos] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[Productos1] (
[ProductoID] [int] IDENTITY (1, 1) NOT NULL ,
[Numero_Orden] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Detalle_orden] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Fecha] [datetime] NULL ,
[Nombre] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Codigo_ProductoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[Precio_Fabricacion] [decimal](18, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[Tarjetas_12v] (
[Inversor1KID] [int] IDENTITY (1, 1) NOT NULL ,
[DispositivoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [decimal](18, 0) NULL ,
[Precio] [float] NULL ,
[Detalle_orden] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Codigo_ProductoID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL
) ON [PRIMARY]
GO
ALTER trigger Insert_Producto1
on dbo.Despacho
for insert
as
declare @a numeric
insert into productos1
(producto1.Numero_Orden,producto1.detalle_Orden,producto1.fecha,producto1.nombre,Codigo_ProductoID,precio_Fabricacion)
SELECT Numero_Orden,Detalle_orden,
Fecha,Tecnicos,Codigo_ProductoID,(select sum(Cantidad * precio) from
inserted where numero_orden = numero_orden group by codigo_productoID )
from inserted
where despachoID = despachoID
GROUP BY Numero_Orden,Detalle_orden,Fecha,Tecnicos,Codigo_ProductoID
en esta parte del trigger es que esta mi problema
(select sum(Cantidad * precio) from inserted where numero_orden =
numero_orden )
lo que sucede es que el me suma todos los valores de la tabla inserted sin
tomar en cuenta el numero_orden
ejemplo
Tabla inserted
dispositivoID precio cantidad numero_orden
RR2 2 20 1
RR1 5 20 1
RR2 2 20 2
RR1 5 20 2
Tabla producto1
este es el resultado que necesito
numero_orden precio_fabricacion
1 140
2 140
el resultado que me esta dando actualmente es
numero_orden precio_fabricacion
1 280
2 280
Leer las respuestas