Orden de venta VS factura

hola a todos

estoy realizando una consulta donde me regrese la comparacion de mi facturacion vs mi orden de venta el probrema que presento es que cuando tengo dos facturas que salen de una misma orden me repite las lineas y no me las agrupa se que es por la cuention de que se generan dos documentos diferentes el probrema aqui es que requiero ver que documento es y es necesario este campo en mi consulta, de que otra forma puedo agrupar esto??

select A.CardName as 'cliente' ,A.NumAtCard as 'Orden de cliente',E.NAME as 'Tranporte',A.DocDate as 'Fecha de Orden',A.DOCNUM as 'Numero de Orden',
B.ItemCode as 'Articulo de orden',B.Dscription as 'descripcion de orden',B.Quantity as 'cantidad de orden',
F.Name as 'ventana',D.U_LIDER_EMBARQUE
,D.DocDate as 'fecha de envio',D.DOCNUM as 'documento envio',SUM(C.Quantity) as 'cantidad de envio',
case
when B.Quantity - SUM(C.Quantity) = 0 then 'COMPLETO'
when B.Quantity - SUM(C.Quantity) < 0 then 'ENVIO MAYOR'
ELSE 'INCOMPLETO'
end as 'ESTATUS ENVIO'
 from ORDR A LEFT JOIN RDR1 B ON A.DocEntry = B.DocEntry
LEFT join INV1 C on A.DocEntry = C.BaseEntry and A.DocEntry = C.BaseRef and A.DocEntry = C.basedocnum and B.lineNum = C.lineNum
LEFT join OINV D on C.DocEntry = D.DocEntry 
LEFT JOIN [@VENTANA] E ON E.CODE = A.U_VENTANA
LEFT JOIN [@VENTANA] F ON F.CODE = D.U_VENTANA
WHERE A.DOCNUM = 597
GROUP BY A.CardName,A.NumAtCard,E.NAME,A.DocDate,A.DOCNUM,B.ItemCode,B.Dscription,B.Quantity,
F.Name,D.U_LIDER_EMBARQUE,D.DocDate,D.DOCNUM

Buenos días ASanchez…

MMMmmm… por lo que veo que mencionas, si te digo que efectivamente tendrás líneas que se “duplicará” la información de la Orden de Venta, cuando esta tenga 2 facturas, y por medio de Query es complicado por no decir MUY complicado que te aparezca en 1 sola linea las 2 o N Facturas que tenga asociado… a menos que trabajes con tabla temporal, y que tengas campos tipo: Factura 1, monto 1, cantidad 1, cantidad 2, cantidad 3, factura 2, monto 2, cantidad 1b, cantidad 2b, cantidad 3b… y así a lo que es casi imposible saber la cantidad de campos, y las veces que debes de dar vueltas por la tabla para cargar, adicional a que si no controlas la cantidad máxima de artículos en una factura ni te cuento…

Lo que yo te recomendaría en este momento, es que ese mismo Query, lo utilices como base, y te crees un reporte en Crystal Report. Así el mismo puedes crearle la separación y Agrupar por Orden de venta, y en el detalle colocar los datos de las facturas y sus líneas sin estarte matando días en un query de SQL. Un reporte sencillo, ya con tu query hecho lo debes de sacar en un par de horas máximo, incluso ya con el query podrías sacar un primer demo en unos 30 minutos. y ya luego si la información es correcta y lo que necesitas lo pones bonito, acomodas los campos y el orden para que sea entendible y demás y al final lo importas como un informe en SAP. Yo lo haría así para una mejor visualización y más fácil organización de los datos.

Saludos Cordiales…

1 me gusta

Si trabajas con la tabla INV1 (Detalle de la factura) y la RDR1 (Detalle de la orden venta) te agrega una linea por cada linea del detalle de la factura/Ordenventa.
Si te es posible hacer tu query solo usando la la ORDR y la OINV, quizá te funcione lo que necesitas.

Es una sugerencia.
Saludos.

1 me gusta

Hola, buen día!

Yo he estado utilizando las tablas INV1, RDR1, ORDR y OINV en consultas más sencillas, solo que estaba buscando la comparación desde la Información de las Facturas; es decir, de un periodo de tiempo obtener una relación de facturas y poder anexar la orden de venta de la que se origino.

Solo que creo que debo tener algunos errores en mi consulta, ya que no me anexa ningún folio de entrega u orden de venta.

From
OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] LEFT JOIN DLN1 T2 ON T2.[BaseEntry] = T1.[DocEntry] AND T2.[BaseLine] = T1.[LineNum] LEFT JOIN ODLN T3 ON T2.[DocEntry] = T3.[DocEntry] LEFT JOIN RDR1 T4 ON T4.[BaseEntry] = T2.[DocEntry] AND T4.[BaseLine] = T2.[LineNum] LEFT JOIN ORDR T5 ON T4.[DocEntry] = T5.[DocEntry]

No se si existe alguna diferencia en el orden de la búsqueda, por que tengo una consulta similar con las compras, pero su origen es del Pedido y no de la Factura de Proveedores y en esa si me arrojo resultados.

De antemano agradezco su atención.

Saludos!!!

Hola Laura.
Veo que estas usando LEFT JOIN, adjunto imagen para que verifiques las diferencias entre los tipos de JOIN en una consulta SQL.

Revisa la imagen y revisa tu consulta.
Espero te sirva.

Saludos.

4 Me gusta

Muchas gracias @saufondez!!!

No soy experta en SQL, pero tu información me será muy valiosa para entender mejor. :smiley:

Seguiré trabajando en mis consultas :wink:.

Saludos!!!

Excelente, ese es el objetivo, ir entendiendo y aprendiendo.
Saludos.

Este esquema es fantástico! gracias!!!

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.