AYUDA PLEASE.!!!!!!!!!!!!!!!

22/09/2004 - 23:24 por Alma Alicia Gutierrez | Informe spam
Estimados Amigos, con el siguiente procedimiento yo genero todas las
facturas con saldo a una fecha definida, POR EJEMPLO AL 31 DE AGOSTO.. PERO
ahora , necesito generar este mismo informe pero tengo que tener un saldo
anterior (POR EJEMPLO AL 31 DE JULIO) Y LUEGO PONER EL MOVIMIENTO(FACTURAS
GENERANDAS) EN EL SIGUIENTE MES (EN ESTE CASO AGOSTO.)... SI ALGUIEN PUEDE
COLABORME... ALGUNA IDEA PARA GENERARLO...

Saludos

AA

CREATE PROCEDURE dbo.PCA_SALDOS_X_ANTIGUEDAD(@fechafin datetime)
AS SELECT F.Fact_Total, F.Op_id, ISNULL(CST_MOVIMIENTOS.RECIBO, 0) AS
RECIBO, ISNULL(CST_MOVIMIENTOS.CREDITO, 0) AS CREDITO,
ISNULL(CST_MOVIMIENTOS.DEBITO, 0) AS DEBITO,
(F.Fact_Total + ISNULL(CST_MOVIMIENTOS.DEBITO, 0)) -
(ISNULL(CST_MOVIMIENTOS.CREDITO,
0) + ISNULL(CST_MOVIMIENTOS.RECIBO, 0)) AS SALDO,
ISNULL(CST_MOVIMIENTOS.CREDITO, 0) + ISNULL(CST_MOVIMIENTOS.RECIBO, 0)
AS PAGOS, dbo.Operadores.OP_Nombre, F.Fact_FechaVenc,
dbo.Representantes.REP_Nombre, dbo.Ciudades.CUD_Nombre
FROM dbo.FACTURA F INNER JOIN
dbo.Operadores ON F.Op_id = dbo.Operadores.OP_ID INNER
JOIN
dbo.Representantes ON dbo.Operadores.REP_ID dbo.Representantes.REP_ID INNER JOIN
dbo.Ciudades ON dbo.Operadores.CUD_ID dbo.Ciudades.CUD_ID LEFT OUTER JOIN
(SELECT CST_MOVIMIENTOS.fact_id,
SUM(CST_MOVIMIENTOS.RECIBO) AS RECIBO, SUM(CST_MOVIMIENTOS.CREDITO) AS
CREDITO,

SUM(CST_MOVIMIENTOS.DEBITO) AS DEBITO
FROM CST_MOVIMIENTOS
WHERE CST_MOVIMIENTOS.REC_FECHA <@FECHAFIN
GROUP BY CST_MOVIMIENTOS.FACT_ID)
CST_MOVIMIENTOS ON F.Fact_Id = CST_MOVIMIENTOS.FACT_ID
WHERE (F.Fact_Fecha <= @FECHAFIN) AND ((F.Fact_Total +
ISNULL(CST_MOVIMIENTOS.DEBITO, 0)) - (ISNULL(CST_MOVIMIENTOS.CREDITO, 0)
+ ISNULL(CST_MOVIMIENTOS.RECIBO, 0)) > 0)
GO
 

Leer las respuestas

#1 Javier Loria
23/09/2004 - 05:13 | Informe spam
Hola:
Tal vez algo como esto?
==CREATE PROCEDURE PCA_SALDOS_X_ANTIGUEDAD(@fechaini datetime, @fechafin
datetime)
AS
SELECT F.Fact_Total
, F.Op_id
, F.Fact_Total+ISNULL(MovimientosAnteriores.MovimientoAnterior) AS
SaldoAnterior
, ISNULL(MovimientosMensuales.RECIBO, 0) AS RECIBO
, ISNULL(MovimientosMensuales.CREDITO, 0) AS CREDITO
, ISNULL(MovimientosMensuales.DEBITO, 0) AS DEBITO
, (F.Fact_Total + ISNULL(MovimientosMensuales.DEBITO, 0))
+ ISNULL(MovimientosAnteriores.MovimientoAnterior)
- (ISNULL(MovimientosMensuales.CREDITO, 0) +
ISNULL(MovimientosMensuales.RECIBO, 0))
AS SALDO
, ISNULL(MovimientosMensuales.CREDITO, 0) +
ISNULL(MovimientosMensuales.RECIBO, 0) AS PAGOS
, Operadores.OP_Nombre
, F.Fact_FechaVenc
, Representantes.REP_Nombre
, Ciudades.CUD_Nombre
FROM FACTURA F
INNER JOIN Operadores
ON F.Op_id = Operadores.OP_ID
INNER JOIN Representantes
ON Operadores.REP_ID =Representantes.REP_ID
INNER JOIN Ciudades ON Operadores.CUD_ID =Ciudades.CUD_ID
LEFT OUTER JOIN (SELECT CST_MOVIMIENTOS.fact_id
, SUM(CST_MOVIMIENTOS.DEBITO)
- SUM(CST_MOVIMIENTOS.CREDITO)
- SUM(CST_MOVIMIENTOS.RECIBO) AS MovimientoAnterior
FROM CST_MOVIMIENTOS
WHERE CST_MOVIMIENTOS.REC_FECHA <=@FECHAINI
GROUP BY CST_MOVIMIENTOS.FACT_ID) AS MovimientosAnteriores
ON F.Fact_Id = MovimientosAnteriores.FACT_ID
LEFT OUTER JOIN (SELECT CST_MOVIMIENTOS.fact_id
, SUM(CST_MOVIMIENTOS.RECIBO) AS RECIBO
, SUM(CST_MOVIMIENTOS.CREDITO) AS CREDITO
, SUM(CST_MOVIMIENTOS.DEBITO) AS DEBITO
FROM CST_MOVIMIENTOS
WHERE CST_MOVIMIENTOS.REC_FECHA BETWEEN
DATEADD(day,1,@FECHAINI) AND @FECHAFIN
GROUP BY CST_MOVIMIENTOS.FACT_ID) AS MovimientosMensuales
ON F.Fact_Id = MovimientosMensuales.FACT_ID
WHERE (F.Fact_Fecha <= @FECHAFIN) AND
((F.Fact_Total +ISNULL(MovimientosMensuales, 0)) -
(ISNULL(MovimientosMensuales.CREDITO, 0) +
ISNULL(MovimientosMensuales.RECIBO, 0)) > 0)
GO
==Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Alma Alicia Gutierrez" wrote in message
news:#
Estimados Amigos, con el siguiente procedimiento yo genero todas las
facturas con saldo a una fecha definida, POR EJEMPLO AL 31 DE AGOSTO..


PERO
ahora , necesito generar este mismo informe pero tengo que tener un saldo
anterior (POR EJEMPLO AL 31 DE JULIO) Y LUEGO PONER EL MOVIMIENTO(FACTURAS
GENERANDAS) EN EL SIGUIENTE MES (EN ESTE CASO AGOSTO.)... SI ALGUIEN PUEDE
COLABORME... ALGUNA IDEA PARA GENERARLO...

Saludos

AA

CREATE PROCEDURE dbo.PCA_SALDOS_X_ANTIGUEDAD(@fechafin datetime)
AS SELECT F.Fact_Total, F.Op_id, ISNULL(CST_MOVIMIENTOS.RECIBO, 0) AS
RECIBO, ISNULL(CST_MOVIMIENTOS.CREDITO, 0) AS CREDITO,
ISNULL(CST_MOVIMIENTOS.DEBITO, 0) AS DEBITO,
(F.Fact_Total + ISNULL(CST_MOVIMIENTOS.DEBITO, 0)) -
(ISNULL(CST_MOVIMIENTOS.CREDITO,
0) + ISNULL(CST_MOVIMIENTOS.RECIBO, 0)) AS SALDO,
ISNULL(CST_MOVIMIENTOS.CREDITO, 0) + ISNULL(CST_MOVIMIENTOS.RECIBO, 0)
AS PAGOS, dbo.Operadores.OP_Nombre,


F.Fact_FechaVenc,
dbo.Representantes.REP_Nombre, dbo.Ciudades.CUD_Nombre
FROM dbo.FACTURA F INNER JOIN
dbo.Operadores ON F.Op_id = dbo.Operadores.OP_ID


INNER
JOIN
dbo.Representantes ON dbo.Operadores.REP_ID > dbo.Representantes.REP_ID INNER JOIN
dbo.Ciudades ON dbo.Operadores.CUD_ID > dbo.Ciudades.CUD_ID LEFT OUTER JOIN
(SELECT CST_MOVIMIENTOS.fact_id,
SUM(CST_MOVIMIENTOS.RECIBO) AS RECIBO, SUM(CST_MOVIMIENTOS.CREDITO) AS
CREDITO,

SUM(CST_MOVIMIENTOS.DEBITO) AS DEBITO
FROM CST_MOVIMIENTOS
WHERE CST_MOVIMIENTOS.REC_FECHA <> @FECHAFIN
GROUP BY CST_MOVIMIENTOS.FACT_ID)
CST_MOVIMIENTOS ON F.Fact_Id = CST_MOVIMIENTOS.FACT_ID
WHERE (F.Fact_Fecha <= @FECHAFIN) AND ((F.Fact_Total +
ISNULL(CST_MOVIMIENTOS.DEBITO, 0)) - (ISNULL(CST_MOVIMIENTOS.CREDITO, 0)
+ ISNULL(CST_MOVIMIENTOS.RECIBO, 0)) > 0)
GO


Preguntas similares