Query proceso de venta

Buenas tardes, alguien sabe como crear un query del Proceso de venta, llevar un seguimiento desde orden de venta, entrega , factura pero puede haber casos que solo haya orden de venta factura , o entrega factura ? Lo e intentado de muchas maneras pero no doy con el resultado que necesito , tengo esta relación en mi query.

from OINV t6 
JOIN INV1 b ON b.DocEntry = t6.DocEntry 
LEFT JOIN DLN1 c ON c.DocEntry = b.BaseEntry
LEFT JOIN ODLN t4 ON t4.DocEntry = c.DocEntry  AND t4.ObjType =b.BaseTypE 
LEFT JOIN RDR1 e On e.DocEntry = b.DocEntry AND    b.BaseEntry = e.TrgetEntry
LEFT JOIN ORDR t2 ON t2.DocNum = c.BaseRef AND t4.DocNum = b.BaseRef

Hola Arleny tuve un caso parecido al tuyo y lo solucione utilizando la función de SQL “Union All” para unir los querys de acuerdo a los posibles movimientos por ejemplo:

Query 1 (Cotizacion --> Orden Venta --> Factura Cliente)

Union All

Query 2 (Cotizacion --> Factura de cliente )

Union All

Query 3 (Orden Venta --> Factura de cliente)

y para los 3 Querys debes de utilizar el mismo numero de variables y tipos. De esta manera vas a poder generar tu informe de una forma sencilla. Por otro lado veo que tienes un error al ligar las tablas los campos BaseEntry te guardan el DocEntry del documento que viene y los TargetEntry de los documentos posteriores, en el caso del query que presentas quieres ligar la factura con la cotización lo cual seria de la siguiente manera

FROM OINV T6
Left Join INV1 b ON T6.Docentry=b.DocEntry
Left Join DLN1 c on c.TargetEntry=b.Docentry and b.baseType=‘13’

ó

FROM OINV T6
Left Join INV1 b ON T6.Docentry=b.DocEntry
Left Join DLN1 c on c.DocEntry=b.BaseEntry and b.BaseType=‘15’

Saludos.

1 me gusta

Hola estimada @Arleny
tal y como te sugiere el compañero @X-vldz debes verificar como estás vinculando una tabla con otra, y el uso del UNION ALL de SQL es lo mejor para ello.

Por otro lado, otra opcion, sería que estandarices tu proceso y obligues a los usuarios a que siempre sea el proceso de la misma manera, por ejemplo:
Cotizacion —> Orden de venta —> Factura Cliente (u otra variante) pero que todo sea mas estandarizado.

De esta forma siempre podrás verificar que la Factura debe llevar obligatoriamente una Orden de venta, y esta a su vez una Cotizacion (por ejemplo).

Saludos.

1 me gusta

Muchas gracias, efectivamente lo hice con UNION ALL , Saludos

Gracias por la aportación, lo solucioné con UNION ALL…

Saludos