Buen dia.
Los dos SP me dan el mismo resultado, pero quisiera saber cual es el
mas optimo.
El objetivo es los SP es recuperar los datos todos los empleados que
trabaja en la maquina a la que se le asigno el ultimo egreso de un
determinado item.
ALTER Procedure dbo.spC_EmpleadoMaquinaTroqueladoraPrb @tiIdMovTip
Int, @tiItemId int
As
Select Empleado.iEmpleadoId, Empleado.cNameSmall
From Empleado
Inner Join MaquinaEmpleado ON Empleado.iEmpleadoId MaquinaEmpleado.iIdEmpleado
Inner Join (Select Top 1 Inv_MovC.iIdMaquina
From Inv_MovC
Inner Join Inv_MovD On Inv_MovC.iMovCId = Inv_MovD.iIdMovC
Inner Join Inv_ItemStock On Inv_MovD.iIdItemStock Inv_ItemStock.iItemStockId
Inner Join Inv_Item On Inv_ItemStock.iIdItem Inv_Item.iItemId
Where Inv_MovC.iIdMovTip = @tiIdMovTip --Egreso de troqueles
And Inv_Item.iItemId = @tiItemId
Order By Inv_MovC.iMovCId desc
) As t On MaquinaEmpleado.iIdMaquina = t.iIdMaquina
ALTER Procedure dbo.spC_EmpleadoMaquinaTroqueladoraPrb1 @tiIdMovTip
Int, @tiItemId int
As
Declare @tiMachineKey Int
SET ROWCOUNT 1
Select @tiMachineKey = Inv_MovC.iIdMaquina
From Inv_MovC
Inner Join Inv_MovD On Inv_MovC.iMovCId = Inv_MovD.iIdMovC
Inner Join Inv_ItemStock On Inv_MovD.iIdItemStock Inv_ItemStock.iItemStockId
Inner Join Inv_Item On Inv_ItemStock.iIdItem = Inv_Item.iItemId
Where Inv_MovC.iIdMovTip = @tiIdMovTip --Egreso de troqueles
And Inv_Item.iItemId = @tiItemId
Order By Inv_MovC.iMovCId desc
SET ROWCOUNT 0
Select Empleado.iEmpleadoId, Empleado.cNameSmall
From Empleado
Inner Join MaquinaEmpleado ON Empleado.iEmpleadoId MaquinaEmpleado.iIdEmpleado
Where MaquinaEmpleado.iIdMaquina = @tiMachineKey
Espero sus comentarios.
Saludos.
Mauricio Pulla.
Cuenca-Ecuador
Leer las respuestas