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