cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta de ventas

former_member220991
Participant
0 Kudos

Buenos dias foro estor realizando la siguinete consulta

declare @i datetime, @f datetime

set @i=(/*select top 1 A.DocDate from OINV A where A.DocDate=*/'[%0]')  

set @f=(/*select top 1 A.DocDate from OINV A where A.DocDate=*/'[%1]')

SELECT T0.CardCode AS 'customer code',

T0.CardName AS 'Client name',CASE T0.DocType

When 'S'

then 'invoice service'

when 'I'

then 'Article invoice'

else 'NULL'

end AS 'Purchase Type',

CASE T0.U_TIPO_VENTA

When '1'

then 'invoice Injection'

when '2'

then 'Extrusion invoice'

else 'NULL'

end AS 'Purchase Type',

ISNULL(SUM(T0.doctotalfc)-SUM(T0.VatSumFC),0) as 'TOTAL SIN IVA',ISNULL(SUM(T0.VatSumFC),0) as 'IVA',ISNULL(SUM(T0.doctotalfc),0) as 'TOTAL FACTURA',

Isnull ((SELECT sum(X.DocTotalFC)-SUM(X.VatSumFC) FROM ORIN X WHERE X.Canceled='N' and X.CardCode = T0.CardCode and

X.DocDate = T0.DocDate),0) As 'Credit notes',

ISNULL(SUM(T0.doctotalfc)-SUM(T0.VatSumFC),0)-ISNULL((SELECT sum(X.DocTotalFC)-SUM(X.VatSumFC) FROM ORIN X WHERE X.Canceled='N' and X.CardCode = T0.CardCode and

X.DocDate = T0.DocDate),0)'TOTAL VENTA',

T0.DocCur,T0.DocDate

FROM OINV T0

WHERE T0.DocStatus = 'O' AND T0.SERIES = 4 and T0.DocDate between @i and @f

GROUP BY T0.CardCode,T0.CardName,T0.DocCur,T0.DocType,U_TIPO_VENTA,T0.DocDate,T0.DocStatus

ORDER BY T0.DocDate,T0.CardCode

FOR BROWSE

la cual me trae mis ventas por dia agrupadas por tipo de venta y cliente, lo malo es que solo me trae algunas fecha no me las tre todas. supongo que es por que compara las fechas de movimientos (X.DocDate = T0.DocDate) pero si no realizo esta comparacion de igual manera no me toma en cuenta algunos movimientos de notas de credito.

como puedo hacer mi afectacion si algunas notas de credito no afectan directa mente a la factura

Accepted Solutions (1)

Accepted Solutions (1)

former_member220991
Participant
0 Kudos

Perdon por la tardansa ya encontre el por que en la consulta. no se por que o en que estaba pensando que se me pso esta parte en la consulta T0.DocStatus = 'O'  entonces por eso solo me mostrababa mis documentos que estaban abiertos. pero ya esta. gracias 

Answers (3)

Answers (3)

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

yo te propongo obtener la consulta sólo para facturas, y una vez conseguida duplicarla sustituyendo las tablas INV (relacionadas con las facturas de venta) por RIN (abonos de venta). En la parte de abonos multiplicaría las cantidades por -1.

Por último unir las dos consultas mediante la cláusula UNION ALL.

Un saludo

Agustín Marcos Cividanes

Former Member
0 Kudos

Estimado Antonio, puedes revisar este post a lo mejor te puede ayudar para filtrar las facturas que no están asociadas a una NC http://scn.sap.com/thread/3902845.

Saludos cordiales

Atte.

juancarlos_huerta
Contributor
0 Kudos

Hay hay que hacer un análisis antes de que puedas definir qué modificar/agregar a tu query. Estas son mis recomendaciones:

1. Esas NC que comentas que no te esté considerando, corresponden a los mismos clientes? Si es así, pasa a la siguiente pregunta. Si es no, crea un query adicional para todas esas NC q son de cliente que no ha facturado me el periodo que consultas y lo unes a ti query principal (Unión all).

2. Dichas NC están en el mismo rango de fechas de tus variables? Si es no, entonces desvincula el campo de fecha de los subqueries pero esto te traería todas las NC existentes. A lo mejor te funcionaria indicar que sólo te considere las que son mayores a la fecha de inicio o que tengan algún otro vínculo con tus facturas.

3. Son NC que se copiaron desde Factura? Entonces tendrías que vincular entre documentos usando los campos de enlace entre documentos que posiblemente ya conoces (DocEntry, BaseEntry, LineNum, BaseLine de acuerdo a la lógica que necesites).

Podría haber más propuestas de solución pero todo depende del análisis que puedas realizar o que otros compañeros del foro puedan aportar.

Saludos,

JC.