Hola, sigo con problemas con este Script, debo sacar las ordenes con sus entregas y facturas, pero en ciertos casos me cuadra bien, en otros no, este es:
SELECT DISTINCT
-- Datos del cliente
T0.CardCode CedulaRUC,
UPPER(T0.CardName) Cliente,
REPLACE(RTRIM(LTRIM(T0.Address)), CHAR(13), '') Direccion,
UPPER(T4.Name) Canal,
UPPER(T5.Name) MacroCanal,
UPPER(T2.SlpName) Vendedor,
-- Datos del Item
T1.ItemCode CodigoItem,
RTRIM(LTRIM(T1.Dscription)) DescripcionItem,
T1.unitMsr Unidad,
T1.NumPerMsr UnidadMedida,
-- Datos del Pedido
CONVERT(CHAR(10), T0.DocDate, 102) FechaPedido,
T0.DocNum NumeroPedido,
T1.Quantity CantidadPedido,
T1.PriceBefDi ValorUnitarioPedido,
T1.Quantity * T1.PriceBefDi ValorAntesDescuentoPedido,
T1.DiscPrcnt PorcentajeDescuento,
CASE WHEN T1.DiscPrcnt = 0 THEN T1.Quantity * T1.PriceBefDi ELSE ((T1.Quantity * T1.PriceBefDi) * T1.DiscPrcnt) / 100 END ValorDespuesDescuentoPedido,
T1.LineTotal ValorTotalLineaPedido,
---- Datos de la Entrega
CONVERT(CHAR(10), T7.DocDate, 102) FechaEntrega,
T7.DocNum NumeroEntrega,
T6.Quantity CantidadEntrega,
T6.PriceBefDi ValorUnitarioEntrega,
T6.Quantity * T6.PriceBefDi ValorAntesDescuentoEntrega,
T6.DiscPrcnt PorcentajeDescuentoEntrega,
CASE WHEN T6.DiscPrcnt = 0 THEN T6.Quantity * T6.PriceBefDi ELSE ((T6.Quantity * T6.PriceBefDi) * T6.DiscPrcnt) / 100 END ValorDespuesDescuentoEntrega,
T6.LineTotal ValorTotalLineaEntrega,
--Datos de la Factura
CONVERT(CHAR(10), T10.DocDate, 102) FechaFacturacion,
T10.FolioNum NumeroFactura,
T9.Quantity Cantidadfacturada,
T9.PriceBefDi ValorUnitarioFactura,
T9.Quantity * T9.PriceBefDi valorAntesDescuentoFactura,
T9.DiscPrcnt PorcentajeDescuentoFactura,
CASE WHEN T9.DiscPrcnt = 0 THEN T9.Quantity * T9.PriceBefDi ELSE ((T9.Quantity * T9.PriceBefDi) * T9.DiscPrcnt) / 100 END ValorDespuesDescuentoFactura,
T9.LineTotal ValorTotalLineaFactura,
-- Se calcula el StockOut (Cant. Entrega - Cant. Facturada
ISNULL(T1.Quantity, 0) - ISNULL(T6.Quantity, 0) StockOut
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN OCRD T3 ON T3.CardCode = T0.CardCode
LEFT JOIN OSLP T2 ON T2.SlpCode = T3.SlpCode
LEFT JOIN "@GRUPO_SN" T4 ON T4.Code = T3.U_GrupoSN
LEFT JOIN "@SN_MACROCANAL" T5 ON T5.Code = T3.U_MacroCanal
LEFT JOIN DLN1 T6 ON T6.BaseRef = T0.DocNum AND T6.Quantity = T1.Quantity AND T6.PriceBefDi = T1.PriceBefDi
LEFT JOIN ODLN T7 ON T7.DocEntry = T6.DocEntry
--LEFT OUTER JOIN RDN1 T8 ON T8.BaseRef = T7.DocNum
LEFT JOIN INV1 T9 ON T9.BaseRef = T7.DocNum AND T9.Quantity = T6.Quantity AND T9.PriceBefDi = T6.PriceBefDi
LEFT JOIN OINV T10 ON T10.DocEntry = T9.DocEntry
No se que mas falta para que cuadre, alguien me ayude por fa, gracias