Hola,
Tengo un problema, me pidieron un reporte de Pedidos con su Entrega y su Factura, ya tengo algo, pero con algunos pedidos se me saben duplicar los registros. Este es mi script, ¿Me podrian decir por favor que JOIN adicional me estaria haciendo falta? Gracias!
SELECT DISTINCT
T0.CardCode CedulaRUC,
T0.CardName Cliente,
T0.Address Direccion,
T5.Name Canal,
T6.Name MacroCanal,
T3.SlpName Vendedor,
T1.ItemCode CodigoItem,
T1.Dscription DescripcionItem,
T1.unitMsr Unidad,
T1.NumPerMsr UnidadMedida,
CONVERT(CHAR(10), T1.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,
CONVERT(CHAR(10), T2.DocDate, 102) FechaEntrega,
T2.DocNum NumeroEntrega,
T7.Quantity CantidadEntrega,
T7.PriceBefDi ValorUnitarioEntrega,
T7.Quantity * T1.PriceBefDi ValorAntesDescuentoEntrega,
T7.DiscPrcnt PorcentajeDescuentoEntrega,
CASE WHEN T7.DiscPrcnt = 0 THEN T7.Quantity * T1.PriceBefDi ELSE ((T7.Quantity * T7.PriceBefDi) * T7.DiscPrcnt) / 100 END ValorDespuesDescuentoEntrega,
T7.LineTotal ValorTotalLineaEntrega,
CONVERT(CHAR(10), T9.DocDate, 102) FechaFacturacion,
T9.FolioNum NumeroFactura,
T8.Quantity Cantidadfacturada,
T8.PriceBefDi ValorUnitarioFactura,
T8.Quantity * T8.PriceBefDi valorAntesDescuentoFactura,
T8.DiscPrcnt PorcentajeDescuientoFactura,
CASE WHEN T8.DiscPrcnt = 0 THEN T8.Quantity * T8.PriceBefDi ELSE ((T8.Quantity * T8.PriceBefDi) * T8.DiscPrcnt) / 100 END ValorDespuesDescuentoFactura,
T8.LineTotal ValorTotalLineaFactura
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN ODLN T2 ON T1.TrgetEntry = T2.DocEntry
LEFT JOIN OSLP T3 ON T3.SlpCode = T2.SlpCode
LEFT JOIN OCRD T4 ON T4.CardCode = T2.CardCode
LEFT JOIN "@GRUPO_SN" T5 ON T5.Code = T4.U_GrupoSN
LEFT JOIN "@SN_MACROCANAL" T6 ON T6.Code = T4.U_MacroCanal
LEFT JOIN DLN1 T7 ON T7.DocEntry = T2.DocEntry
LEFT JOIN INV1 T8 ON T7.ObjType = T8.BaseType and T7.DocEntry = T8.BaseEntry
LEFT JOIN OINV T9 ON T9.DocEntry = T8.DocEntry
WHERE
--T2.DocDate BETWEEN '20210701' AND '20210705'
T0.DocNum = 174991