Re: Se demora demasiado mi consulta esta bien les adjunto la cantidad de codigo que tengo en mi SP: (espero que no se caiga este servidor ji,ji,ji)
CREATE procedure [dbo].[cxc_P_RptMayorClientes]
@PI_IdEmpresa int,
@PI_IdOficina int,
@PI_IdCliente int,
@PI_FechaInicial varchar(10),
@PI_FechaFinal varchar(10),
@PI_TipoPago int,
@PI_SaldoInicial char(1)
as
declare
@VL_NotasCredito money,
@VL_Saldo money,
@VL_NumDocumentoPago varchar(200),
@VL_FormaPago varchar(200),
@VL_Observacion varchar(300),
@VL_IngresoCaja char(1),
@VL_DepConfirmado char(1),
@VL_DepVerificado char(1),
@VL_Canjeado char(1),
@VL_Venta varchar(3),
@VL_Emision varchar(3)
create table #TablaCuentaxCobrar
( Empresa varchar(100),
OficinaCobro varchar(100),
Cliente varchar(100),
UsrCliente varchar(50),
FechaDocumento varchar(10),
TipoDocumento varchar(10),
Venta varchar(10),
Emision varchar(10),
Numero varchar(50),
MontoDocumento money,
NumDocumentoPago varchar(200),
FormaPago varchar(200),
Observacion varchar(300),
IngresoCaja char(1),
DepConfirmado char(1),
DepVerificado char(1),
Canjeado char(1),
SaldoInicial char(1))
create table #TablaCuentaxCobrar1
( Empresa varchar(100),
OficinaCobro varchar(100),
Cliente varchar(100),
UsrCliente varchar(50),
FechaDocumento varchar(10),
TipoDocumento varchar(150),
Venta varchar(150),
Emision varchar(150),
Numero varchar(150),
MontoDocumento money,
NumDocumentoPago varchar(200),
FormaPago varchar(200),
Observacion varchar(300),
IngresoCaja char(1),
DepConfirmado char(1),
DepVerificado char(1),
Canjeado char(1),
SaldoInicial char(1))
IF @PI_SaldoInicial = 'T'
exec cxc_P_RptMayorClientesTotalizado @PI_IdEmpresa,
@PI_IdOficina ,
@PI_IdCliente ,
@PI_FechaInicial ,
@PI_FechaFinal ,
@PI_TipoPago ,
@PI_SaldoInicial
ELSE
BEGIN
--DETALLE DE MOVIMIENTOS EN GENERAL DE DOCUMENTO
if @PI_SaldoInicial = 'N'
BEGIN
INSERT INTO #TablaCuentaxCobrar
( Empresa, OficinaCobro, Cliente, UsrCliente, FechaDocumento,
TipoDocumento, Venta, Emision, Numero, MontoDocumento,
NumDocumentoPago, FormaPago, Observacion, IngresoCaja, DepConfirmado,
DepVerificado, Canjeado, SaldoInicial)
SELECT
--a.IdEmpresa,
sige_participante.dbo.Par_F_getNombreParticipante( a.IdEmpresa) as Empresa,
--a.IdOficina,
sige_participante.dbo.Par_F_getNombreParticipante( a.IdOficina) as OficinaCobro,
sige_participante.dbo.Par_F_getNombreParticipante( a.IdCliente) as Cliente,
sige_participante.dbo.Par_F_getIdUsuario(a.IdClien te) as UsrCliente,
convert(varchar(10),a.FechaIngreso,101) as FechaDocumento,
sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdT ipoDocumento) as TipoDocumento,
'Venta' = case
when a.IdTipoDocumento<>5 then sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdT ipoDocumento)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))
when a.DocOrigen is null and a.IdTipoDocumento=5
then substring(isnull(sige_facturacion.dbo.fac_F_get_Nu mFactura (a.IdEmpresa,a.IdOficina,a.IdDocumento),sige_catal ogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdTipoDocumen to)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))),1,3)
else '' end,
'Emision' = case
when a.IdTipoDocumento<>5 then sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdT ipoDocumento)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))
when a.DocOrigen is null and a.IdTipoDocumento=5
then substring(isnull(sige_facturacion.dbo.fac_F_get_Nu mFactura (a.IdEmpresa,a.IdOficina,a.IdDocumento),sige_catal ogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdTipoDocumen to)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))),5,3)
else '' end,
'Numero' = case
when a.IdTipoDocumento<>5 then sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdT ipoDocumento)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))
when a.DocOrigen is null and a.IdTipoDocumento=5
then substring(isnull(sige_facturacion.dbo.fac_F_get_Nu mFactura (a.IdEmpresa,a.IdOficina,a.IdDocumento),sige_catal ogo.dbo.Ctl_F_conCatalogoDescAlt(8,a.IdTipoDocumen to)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))),9,10)
else a.DocOrigen end,
a.MontoDocumento as MontoDocumento,
'' as NumDocumentoPago,
'' as FormaPago,
'' as Observacion,
--a.IdCliente
'' as IngresoCaja,
'' as DepConfirmado,
'' as DepVerificado,
'' as Canjeado,
a.SaldoInicial
from cxc_CuentaxCobrar a,
cxc_DetalleCuentaxCobrar b
where a.IdEmpresa = @PI_IdEmpresa
and (a.IdOficina = @PI_IdOficina or @PI_IdOficina = @PI_IdOficina)
and (a.IdCliente = @PI_IdCliente or @PI_IdCliente=0)
and a.Estado <> 'E'
and a.SaldoInicial = @PI_SaldoInicial
and a.IdEmpresa = b.IdEmpresa
and a.IdOficina = b.IdOficina
and a.IdTipoDocumento = b.IdTipoDocumento
and a.IdDocumento = b.IdDocumento
and a.FechaIngreso between (case when @PI_FechaInicial = '' then '01-01-1900' when @PI_FechaInicial <> '' then @PI_FechaInicial end) and @PI_FechaFinal
--DETALLE DE MOVIMIENTOS--ANTICIPOS
ELSE
BEGIN
--PAGOS CON FORMA DE PAGO SOLO CON RETENCION
select
--a.IdEmpresa,
sige_participante.dbo.Par_F_getNombreParticipante( a.IdEmpresa) as Empresa,
--a.IdOficinaCobro as IdOficina,
sige_participante.dbo.Par_F_getNombreParticipante( a.IdOficinaCobro) as OficinaCobro,
sige_participante.dbo.Par_F_getNombreParticipante( a.IdCliente) as Cliente,
sige_participante.dbo.Par_F_getIdUsuario(a.IdClien te) as UsrCliente,
convert(varchar(10),a.FechaCobro,101) as FechaDocumento,
sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdT ipoDocumento) as TipoDocumento,
'Venta' = case
when c.IdTipoDocumento<>5 then sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdT ipoDocumento)+ '-' + rtrim(convert(varchar(20),c.IdDocumento))
when d.DocOrigen is null and c.IdTipoDocumento=5
then substring(isnull(sige_facturacion.dbo.fac_F_get_Nu mFactura (c.IdEmpresa,c.IdOficina,c.IdDocumento),sige_catal ogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdTipoDocumen to)+ '-' + rtrim(convert(varchar(20),c.IdDocumento))),1,3)
else '' end,
'Emision' = case
when c.IdTipoDocumento<>5 then sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdT ipoDocumento)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))
when d.DocOrigen is null and c.IdTipoDocumento=5
then substring(isnull(sige_facturacion.dbo.fac_F_get_Nu mFactura (c.IdEmpresa,c.IdOficina,c.IdDocumento),sige_catal ogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdTipoDocumen to)+ '-' + rtrim(convert(varchar(20),c.IdDocumento))),5,3)
else '' end,
'Numero' = case
when c.IdTipoDocumento<>5 then sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdT ipoDocumento)+ '-' + rtrim(convert(varchar(20),a.IdDocumento))
when d.DocOrigen is null and c.IdTipoDocumento=5
then substring(isnull(sige_facturacion.dbo.fac_F_get_Nu mFactura(c.IdEmpresa,c.IdOficina,c.IdDocumento),si ge_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,c.IdTip oDocumento)+ '-' + rtrim(convert(varchar(20),c.IdDocumento))),9,10)
else d.DocOrigen end,
(b.MontoRImpRenta) *-1 as MontoDocumento,
sige_catalogo.dbo.Ctl_F_conCatalogoDescAlt(8,13)+ '-' + cast(a.IdReciboCobro as varchar) as NumDocumentoPago,
'RETENCION' as FormaPago,
a.Observacion,
'' as IngresoCaja,
'' as DepConfirmado,
'' as DepVerificado,
'' as Canjeado,
'P' as SaldoInicial
INTO #TempRetencion
from cxc_Cobro a,
cxc_DetalleCobro b,
cxc_DetalleCuentaxCobrar c,
cxc_CuentaxCobrar d
where a.IdEmpresa = @PI_IdEmpresa
and (a.IdOficinaCobro = @PI_IdOficina or @PI_IdOficina = @PI_IdOficina)
and (a.IdCliente = @PI_IdCliente or @PI_IdCliente=0)
and a.MontoTotal = 0
and a.Estado <> 'E'
---
and a.IdEmpresa = b.IdEmpresa
and a.IdOficinaCobro = b.IdOficinaCobro
and a.IdReciboCobro = b.IdReciboCobro
---
and b.IdEmpresa = c.IdEmpresa
and b.IdOficina = c.IdOficina
and b.IdTipoDocumento = c.IdTipoDocumento
and b.IdDocumento = c.IdDocumento
---
and c.IdEmpresa = d.IdEmpresa
and c.IdOficina = d.IdOficina
and c.IdTipoDocumento = d.IdTipoDocumento
and c.IdDocumento = d.IdDocumento
and a.FechaCobro between (case when @PI_FechaInicial = '' then '01-01-1900' when @PI_FechaInicial <> '' then @PI_FechaInicial end) and @PI_FechaFinal
and d.SaldoInicial = @PI_SaldoInicial
select *from #TablaAnticipos
UNION
select *from #TablaAnticipos1
UNION
select *from #TablaCuentaxCobrar
UNION
select *from #TablaCuentaxCobrar1
UNION
select *from #TempFormaPago
UNION
select *from #TempRetencion
UNION
select *from #TempReembolsos
UNION
select *from #TempCreditosAbiertos
drop table #TablaCuentaxCobrar
drop table #TablaCuentaxCobrar1
drop table #TablaAnticipos
drop table #TablaAnticipos1
END
gracias por la ayuda. y eso que recorté mi codigo; es de 282 lineas. |