Reporte de Movimiento de Compra

Buen día, estoy realizando un reporte de movimiento de compra donde estoy trabando con los siguientes campos
Solicitud
Fecha Solicitud
Estatus
Fecha de Pedido
Pedido
Estatus
Fecha de Entrega
Entrada de mercancías
Estatus
Fecha de Entrega
Número de artículo
Descripción artículo/serv.
Cantidad de Pedido
Cantidad de Entra de Mercancía
Cantidad Restante
Factura Proveedor
Estatus
Proveedor
Solicitado por
La consulta que estoy utilizando es lo siguiente:
SELECT DISTINCT
T0.“DocNum” as “Solicitud”,
T0.“DocDate” as “Fecha Solicitud”,
Case When
T4.“DocEntry” <> 0
Then ‘Autorizada’
When T0.“CANCELED” = ‘N’
Then ‘Pendiente de Autozizar’
When T0.“CANCELED” = ‘Y’
Then ‘Cancelada’ END “Estatus”,
T4.“DocDate” as “Fecha de Pedido”,
T4.“DocNum” as “Pedido”,
Case When
T6.“DocEntry” <> 0
Then ‘Autorizada’ When T4.“CANCELED” = ‘N’
Then ‘Pendiente de Autozizar’ When T4.“CANCELED” = ‘Y’
Then ‘Cancelada’ END “Estatus”,
T6.“DocDate” as “Fecha de Entrega”,
T6.“DocNum” as “Entrada de mercancías”,
Case When T8.“DocEntry” <> 0
Then ‘Autorizada’ When T6.“CANCELED” = ‘N’
Then ‘Pendiente de Autozizar’ When T6.“CANCELED” = ‘Y’
Then ‘Cancelada’ END “Estatus”,
T8.“DocDate” as “Fecha de Entrega”,
T5.“ItemCode”,
T5.“Dscription”,
T5.“Quantity” as “Cantidad de Pedido”,
T7.“Quantity” as “Cantidad de Entra de Mercancía”,
T5.“Quantity”-T7.“Quantity” as “Cantidad Restante”,
T8.“NumAtCard” as “Factura Proveedor”,
Case When T8.“DocStatus” = ‘O’
Then ‘Abierta’ When T8.“DocStatus” = ‘C’
Then ‘Cerrada’ END “Estatus”,
T4.“CardName” as “Proveedor”,
T0.“ReqName” as “Solicitado por”

FROM OPRQ T0
LEFT JOIN PRQ1 T1 ON T0.“DocEntry” = T1.“DocEntry”
LEFT JOIN OPOR T4 ON T1.“TrgetEntry” = T4.“DocEntry”
LEFT JOIN POR1 T5 ON T4.“DocEntry” = T5.“DocEntry”
LEFT JOIN OPDN T6 ON T5.“TrgetEntry” = T6.“DocEntry”
LEFT JOIN PDN1 T7 ON T6.“DocEntry” = T7.“DocEntry” AND T7.“BaseLine”=T5.“LineNum”
LEFT JOIN OPCH T8 ON T7.“TrgetEntry” = T8.“DocEntry”
LEFT JOIN PCH1 T9 ON T8.“DocEntry” = T9.“DocEntry” AND T9.“BaseLine”=T7.“LineNum”
Where T0.“DocDate” BETWEEN ‘[%0]’ AND ‘[%1]’ AND T0.“DocType”=‘I’
ORDER BY T0.“DocNum”

La consulta si funciona, pero tengo problema cuando se realiza una Entrada de mercancías parciales del mismo ítem solo visualizo el último movimiento en este caso la Entrada de mercancías, adjunto la imagen de referencia.

Desde ya se agradece de su apoyo

Quitale el DISTINCT, puede ser que en todas las entradas parciales siempre ingreses 200 y ese comando obvia todo y te muestra una fila con ese valor.

Añadele el T7.DocEntry para q identifiques el código de la entrada

PD: Es ineficiente usar DISTINCT, mejor usar GROUP BY

1 me gusta

Buen día tenguman,
Muchas gracias de sus comentarios, estoy realizando el cambio como me indicó quité la sentencia DISTINCT ahora tengo problema con Case When, no sé sí pedir mucho hacer un ejemplo por favor, desde ya se agradece de su amable ayuda.

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.