Stored Procedure
Enviado por mark • 5 de Septiembre de 2011 • 363 Palabras (2 Páginas) • 599 Visitas
drop proc spCargosGrobalesPorEmp
go
create proc spCargosGrobalesPorEmp
@FECHA1 datetime
,@FECHA2 datetime
,@MovVtas varchar(40)
,@MovNom varchar(40)
AS
BEGIN
create table #TMP
(Modulo varchar(5),NOM_PERIODO varchar(40),Concepto varchar(50),Subtotal money,Impuestos money,Total money)
--
INSERT INTO #TMP
(Modulo,NOM_PERIODO,Concepto,Subtotal,Impuestos,Total)
SELECT MODULO ='VTAS'
,T3.NOM_PERIODO
,T1.Concepto
,Subtotal=SUM(Importe)
,Impuestos = SUM(Impuestos)
,Total = SUM(Importe) + SUM(Impuestos)
FROM VENTA T1, GTPFORTIADB.GTPFORTIA.DBO.RH_TRAB T2,GTPFORTIADB.GTPFORTIA.DBO.RH_PERIODO T3
WHERE T1.MOV = @MovVtas --'Ing de Empleado Cred'
AND T1.FechaEmision BETWEEN @FECHA1 AND @FECHA2
AND T1.ESTATUS = 'CONCLUIDO'
AND T1.PersonalTAT = T2.CLA_TRAB
AND T2.CLA_PERIODO = T3.CLA_PERIODO
AND T2.CLA_EMPRESA = T3.CLA_EMPRESA
GROUP BY T1.Concepto,T3.NOM_PERIODO
UNION ALL
--
SELECT MODULO='NOM'
,T3.NOM_PERIODO
,T1.Concepto
,Subtotal=SUM(T11.Importe)
,Impuestos = 0
,Total = SUM(T11.Importe)
FROM NOMINA T1, NOMINAD T11, GTPFORTIADB.GTPFORTIA.DBO.RH_TRAB T2,GTPFORTIADB.GTPFORTIA.DBO.RH_PERIODO T3
WHERE T1.MOV = @MovNom --'Prestamo Inmediato'
AND T1.FechaEmision BETWEEN @FECHA1 AND @FECHA2
AND T1.ESTATUS IN ('CONCLUIDO','VIGENTE')
AND T1.ID = T11.ID
AND T11.Personal = T2.CLA_TRAB
AND T2.CLA_PERIODO = T3.CLA_PERIODO
AND T2.CLA_EMPRESA = T3.CLA_EMPRESA
GROUP BY T1.Concepto,T3.NOM_PERIODO
--
SELECT GRUPO=substring(NOM_PERIODO,1, (charindex('-',NOM_PERIODO,1)-1))
,Concepto
,Subtotal=SUM(Subtotal)
,Impuestos = SUM(Impuestos)
,Total = SUM(Subtotal) + SUM(Impuestos)
FROM #TMP
GROUP BY substring(NOM_PERIODO,1, (charindex('-',NOM_PERIODO,1)-1)),Concepto
ORDER BY substring(NOM_PERIODO,1, (charindex('-',NOM_PERIODO,1)-1)),Concepto
END
...