Ayuda Ayuda Please

10/09/2004 - 17:00 por Alma Alicia Gutierrez | Informe spam
Estimados Amigos!!!

Tengo rato de tratar de resolver este problema... y ya no puede mas y pido
ayuda..

Lo que quiero es:

Poder sacar un reporte que me de las facturas que emití en un periodo
especificico(fechaini and fechafin) y ademas me de cuales de esas facturas
fueron canceladas en ese mismo periodo.. ya sea mediante una nota de credito
o recibo.. Es decir obtener el saldo..

Lo que he hecho:

Primero hice una consulta de Union donde pongo:
SELECT ' ' AS documento, f.fact_id, F.fact_Fecha, 0 AS recibo, 0 AS
credito, 0 AS debito
FROM factura AS f
UNION ALL
SELECT 'REC- ' + CONVERT(VARCHAR(8), RF.Rec_Id, 112) AS DOCUMENTO,
RF.Fact_Id, R.Rec_Fecha, RF.Rec_cantidad AS RECIBO, 0 AS CREDITO,
0 AS DEBITO
FROM dbo.RECIBO R INNER JOIN
dbo.RECIBO_FACTURA RF ON R.Rec_Id = RF.Rec_Id
UNION ALL
SELECT 'CRE- ' + CONVERT(VARCHAR(8), CF.Cre_Id, 112) AS DOCUMENTO,
CF.Fact_Id, C.Cre_Fecha, 0 AS RECIBO, CF.Cre_Cantidad AS CREDITO,
0 AS DEBITO
FROM dbo.NOTA_CREDITO C INNER JOIN
dbo.[NCREDITO-FACTURA] CF ON C.Cre_Id = CF.Cre_Id
UNION ALL
SELECT 'DEB- ' + CONVERT(VARCHAR(8), DF.Deb_Id, 112) AS DOCUMENTO,
DF.FACT_ID, D .DEB_FECHA, 0 AS RECIBO, 0 AS CREDITO,
DF.DEB_CANTIDAD
FROM NOTA_DEBITO AS D, [NDEBITO-FACTURA] AS DF
WHERE D .DEB_ID = DF.DEB_ID

El problema es que como es una consulta de union, se repiten las facturas,
com puedo evitarlo...

Quizas estoy encolochandome.. y a hay otra forma facil de hacerlo...

de esta consulta yo pretendo sacar Los saldos a una fecha asi.. como lo
planteado anteriormente...


Saludos@

Alma Alicia

Preguntas similare

Leer las respuestas

#1 Maxi
10/09/2004 - 17:14 | Informe spam
Hola, si las tablas es un poco deficil pero vayamos igual ;-)

Una factura se cancela bajo un RECIBO, NOTA Debito o Credito

Ahora bien, si vos queres saber cuanto se cancelo, suponiendo que un recibo
no cancele el total de la factura deberias hacer algo asi como

SELECT FACTURA.ID,FACTURA.IMPORTE,RECIBOS.IMPORTE, FACTURA.IMPORTE -
RECIBOS.IMPORTE AS SALDO
FROM FACTURAS LEFT JOIN (SELECT FACTURAID,SUM(IMPORTE) AS IMPORTE FROM
RECIBOS
GROUP BY FACTURAID) RECIBOS ON
FACTURAS.ID = RECIBOS.FACTURAID
WHERE FACTURA.IMPORTE - RECIBOS.IMPORTE > 0


Es solo un modelo.

Si queres en el union que no repita valores, debes usar UNION y no UNION
ALL, en otras palabras sacale el ALL ;-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Alma Alicia Gutierrez" escribió en el mensaje
news:%
Mostrar la cita
credito
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
#2 Alma Alicia Gutierrez
10/09/2004 - 18:09 | Informe spam
Gracias Maxi!!

Entiendo tu colaboracion, creo que no me explique bien.. estoy aun tierna
en esto..

lo que quiero es obetern las facturas que generaron en Agosto
(fechaini/08/04 and fechafin1/08/04) ademas de los pagos generados
sobre esas facturas en ese mismo mes (Agosto).. yo hasta hoy obtengo las
facturas generadas en agosto


yo pongo en el criterio de Fact_fecha = between @fechaini and @fechafin
y luego en el criterio de Rec_fecha= <=@fechafin.

.. el problema que solo me da las facturas que tubieron movimientos... las
que se pagaron. o se les hicieron nota de credito o debito...

Yo necesito todas las facturas de ese mes. con pagos o no.. Dentre de ese
perido..

Puedes ayudarme...

Gracias por tu colaboracion.





"Maxi" escribió en el mensaje
news:
Mostrar la cita
recibo
Mostrar la cita
pido
Mostrar la cita
facturas
Mostrar la cita
facturas,
Mostrar la cita
#3 Maxi
10/09/2004 - 20:14 | Informe spam
Alma, fijate el ejemplo que yo te arme y pone los where dentro de Recibos y
Facturas.

Y algo muy importante, debes hacer un LEFT JOIN asi te trae todas las
facturas, tengan o no pagos


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Alma Alicia Gutierrez" escribió en el mensaje
news:
Mostrar la cita
mensaje
Mostrar la cita
AS
Mostrar la cita
lo
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
#4 Adrian D. Garcia
10/09/2004 - 20:18 | Informe spam
Si solo quiero las facturas independientemente de los movimientos que hayan
tenido con este select bastaria

SELECT ' ' AS documento, f.fact_id, F.fact_Fecha, 0 AS recibo, 0 AS
credito, 0 AS debito
FROM factura AS f
WHERE

Ahora si quiero las facturas de un periodo mas los movimientos de un periodo
evitando los duplicados entonces

SELECT ' ' AS documento, f.fact_id, F.fact_Fecha, 0 AS recibo, 0 AS
credito, 0 AS debito
FROM factura AS f
UNION
SELECT 'REC- ' + CONVERT(VARCHAR(8), RF.Rec_Id, 112) AS DOCUMENTO,
RF.Fact_Id, R.Rec_Fecha, RF.Rec_cantidad AS RECIBO, 0 AS CREDITO,
0 AS DEBITO
FROM dbo.RECIBO R INNER JOIN
dbo.RECIBO_FACTURA RF ON R.Rec_Id = RF.Rec_Id
UNION
SELECT 'CRE- ' + CONVERT(VARCHAR(8), CF.Cre_Id, 112) AS DOCUMENTO,
CF.Fact_Id, C.Cre_Fecha, 0 AS RECIBO, CF.Cre_Cantidad AS CREDITO,
0 AS DEBITO
FROM dbo.NOTA_CREDITO C INNER JOIN
dbo.[NCREDITO-FACTURA] CF ON C.Cre_Id = CF.Cre_Id
UNION
SELECT 'DEB- ' + CONVERT(VARCHAR(8), DF.Deb_Id, 112) AS DOCUMENTO,
DF.FACT_ID, D .DEB_FECHA, 0 AS RECIBO, 0 AS CREDITO,
DF.DEB_CANTIDAD
FROM NOTA_DEBITO AS D, [NDEBITO-FACTURA] AS DF
WHERE D .DEB_ID = DF.DEB_ID

Saludos
Adrian D. Garcia
NDSoft

"Alma Alicia Gutierrez" wrote in message
news:
Mostrar la cita
mensaje
Mostrar la cita
AS
Mostrar la cita
lo
Mostrar la cita
#5 Alma Alicia Gutierrez
11/09/2004 - 00:01 | Informe spam
Estimado Maxi.. Estoy haciendo lo que me indicaste...


SELECT F.Fact_Id, F.Fact_Fecha, F.Fact_FechaVenc, F.Fact_Total, F.Op_id,
CST_MOVIMIENTOS1.RECIBO, CST_MOVIMIENTOS1.CREDITO,
CST_MOVIMIENTOS1.DEBITO, CST_MOVIMIENTOS1.REC_FECHA
FROM dbo.FACTURA F LEFT OUTER JOIN
(SELECT CST_MOVIMIENTOS1.FACT_ID,
CST_MOVIMIENTOS1.RECIBO, CST_MOVIMIENTOS1.CREDITO, CST_MOVIMIENTOS1.DEBITO,

CST_MOVIMIENTOS1.REC_FECHA
FROM CST_MOVIMIENTOS1
WHERE CST_MOVIMIENTOS1.REC_FECHA BETWEEN
@FECHAINI AND @FECHAFIN) CST_MOVIMIENTOS1 ON
F.Fact_Id = CST_MOVIMIENTOS1.FACT_ID
WHERE (F.Fact_Fecha BETWEEN @fechaini AND @FECHAFIN)

Lo unico que cuando me pide el parametro de la fecha.. no reconce el formato
fecha
eje: 01/08/04 - 31/08/04 (como que es un campo tipo string.)
Los campos fechas yo los tengo como tipo datetime

Perdona la molestia...

Agradezco la ayuda que puedas darme.

Saludos@

"Maxi" escribió en el mensaje
news:%
Mostrar la cita
y
Mostrar la cita
tierna
Mostrar la cita
las
Mostrar la cita
ese
Mostrar la cita
UNION
Mostrar la cita
y
Mostrar la cita
periodo
Mostrar la cita
DOCUMENTO,
Mostrar la cita
DOCUMENTO,
Mostrar la cita
DOCUMENTO,
Mostrar la cita
Ads by Google
Search Busqueda sugerida