Omisión de líneas en Query

Estimados,

Espero que se encuentren muy bien. Les comento que estoy preparando un query para un detallado de ventas, el cual busca proporcionar un consolidado de facturas y notas crédito relacionadas con información presente en otros documentos.

Actualmente, me enfrento a un desafío particular: al procesar un conjunto de productos idénticos que vienen por parcialidad, el query solo está mostrando la primera línea y omitiendo las demás. Esta situación ocurre únicamente cuando las líneas son completamente idénticas en términos de artículo, código, precio, cantidad, etc.

Después de investigar, descubrí que esto ocurre en SAP en estas circunstancias. Sin embargo, no estoy seguro si conocen algún método para que el sistema tenga en cuenta estas situaciones. Adjunto mi query en esta ocasión y quedo atento a sus indicaciones.

Nuevamente, agradezco el apoyo que me han brindado en este foro.

Que se encuentren bien.

-- Consulta para órdenes de venta, los numeros indican el orden que fue requerido por la gestora comercial
SELECT DISTINCT
 A7."SlpName" AS "Asesor", -- 1
substring(A2."CardCode", 2) AS "Nit", -- 2
A2."CardName" AS "Razón Social", -- 3
    CASE -- Este case permite separar las facturas nacionales de las facturas internacionales.
        WHEN A10."GroupName" = 'NACIONALES' THEN 'Nacional'
        WHEN A10."GroupName" = 'INTERNACIONALES' THEN 'Exportación'
        WHEN A10."GroupName" = 'ZONA FRANCA' THEN 'Nacional'
        ELSE A10."GroupName"
    END AS "GroupName", -- 4
        CASE -- Este Case indica que si la Factura es nacional, entonces debe indicar que no aplica, si la factura es internacional de acuerdo al campo U_HCO_Exportacion debe tomar el termino de negociación
        WHEN A10."GroupName" = 'NACIONALES' THEN 'N/A'
        WHEN COUNT(A4."DocEntry") > 0 THEN
            CASE -- Este case indica los terminos de negociacion, según el número que el sistema marca internamente.
                WHEN MAX(A4."U_HCO_Exportacion") = 1 THEN 'FOB'
                WHEN MAX(A4."U_HCO_Exportacion") = 2 THEN 'FCA'
                WHEN MAX(A4."U_HCO_Exportacion") = 3 THEN 'CFR'
                WHEN MAX(A4."U_HCO_Exportacion") = 4 THEN 'CIF'
                WHEN MAX(A4."U_HCO_Exportacion") = 5 THEN 'CPT'
                WHEN MAX(A4."U_HCO_Exportacion") = 6 THEN 'CIP'
                WHEN MAX(A4."U_HCO_Exportacion") = 7 THEN 'DAP'
                WHEN MAX(A4."U_HCO_Exportacion") = 8 THEN 'DPP'
                WHEN MAX(A4."U_HCO_Exportacion") = 9 THEN 'EXW'
                ELSE 'NO ASIGNADO'
            END
        ELSE 'NO ASIGNADO'
    END AS "Termino de negociacion", --5
    A2."U_U_SOLI_CIUENTREGA" AS "Ciudad de Entrega",--6
    A2."U_SECUENCIA" AS "Secuencia",--7
    A2."DocDate",--8
    A1."ItemCode" AS "Código",--9
    A5."SWeight1" AS "Peso",--10
    A1."Dscription" AS "Descripción",--11
    A1."Quantity" AS "Cantidad", --12
    --A1."PriceBefDi" AS "Precio Unitario",--13
  
  
    A1."LineTotal" AS "Total base",--14
        CASE -- Este case indica que cuando se trate de una factura diferente de nacional (O sea internacional) el precio Unitario debe multiplicarse por la cantidad.
        WHEN A10."GroupName" <> 'NACIONALES' THEN A1."PriceBefDi"
        When A10."GroupName" = 'NACIONALES' THEN (A1."PriceBefDi" * 0)
        ELSE NULL 
    END AS "Valor en dólares", 
    (A1."LineTotal" * A2."DocRate") AS "Total en USD",
    (A5."SWeight1" * A1."Quantity") AS "Peso Total", -- 15
    A2."DocNum",
    A2."U_U_SOLI_CIUDAD" AS "Dirección",
    A6."ItmsGrpNam" AS "Grupo de artículo",
    A7."Memo" AS "Zona Asignada",
    A8."PymntGroup" AS "Condiciones de Pago",
    CASE 
        WHEN A10."GroupName" = 'Nacional' THEN
            CASE 
                WHEN A2."DocRate" = 1.00 THEN NULL
                ELSE A2."DocRate"
            END
        ELSE A2."DocRate"
    END AS "DocRate"
FROM INV1 A1
LEFT JOIN OINV A2 ON A2."DocEntry" = A1."DocEntry"
LEFT JOIN RDR1 A3 ON A3."DocEntry" = A1."BaseEntry" AND A3."LineNum" = A1."BaseLine"
LEFT JOIN ORDR A4 ON A4."DocEntry" = A3."DocEntry"
LEFT JOIN OITM A5 ON A1."ItemCode" = A5."ItemCode"
LEFT JOIN OITB A6 ON A5."ItmsGrpCod" = A6."ItmsGrpCod"
LEFT JOIN OSLP A7 ON A2."SlpCode" = A7."SlpCode"
INNER JOIN OCTG A8 ON A2."GroupNum" = A8."GroupNum"
INNER JOIN OCRD A9 ON A2."CardCode" = A9."CardCode" 
INNER JOIN OCRG A10 ON A9."GroupCode" = A10."GroupCode" 
WHERE A2."DocDate" BETWEEN [%0] AND [%1]
GROUP BY 
    A2."DocNum",
    A2."DocDate",
    A2."U_SECUENCIA",
    A2."CardCode",
    A2."CardName",
    A2."U_U_SOLI_CIUDAD",
    A2."U_U_SOLI_CIUENTREGA",
    A1."ItemCode",
    A1."Dscription",
    A1."Quantity",
    A1."PriceBefDi",
    A1."LineTotal",
    A5."SWeight1",
    A6."ItmsGrpNam",
    A7."SlpName",
    A7."Memo",
    A8."PymntGroup",
    A2."DocRate",
    A10."GroupName"

UNION ALL
SELECT DISTINCT
    B5."SlpName" AS "Asesor", -- 1
    SUBSTRING(B2."CardCode", 2) AS "Nit", -- 2
    B2."CardName" AS "Razón Social", -- 3
    CASE
        WHEN B8."GroupName" = 'NACIONALES' THEN 'Nacional'
        WHEN B8."GroupName" = 'INTERNACIONALES' THEN 'Exportación'
        ELSE B8."GroupName"
    END AS "GroupName", -- 4
    CASE
        WHEN B8."GroupName" = 'NACIONALES' THEN 'N/A'
        WHEN COUNT(B10."DocEntry") > 0 THEN
            CASE
                WHEN MAX(B10."U_HCO_Exportacion") = 1 THEN 'FOB'
                WHEN MAX(B10."U_HCO_Exportacion") = 2 THEN 'FCA'
                WHEN MAX(B10."U_HCO_Exportacion") = 3 THEN 'CFR'
                WHEN MAX(B10."U_HCO_Exportacion") = 4 THEN 'CIF'
                WHEN MAX(B10."U_HCO_Exportacion") = 5 THEN 'CPT'
                WHEN MAX(B10."U_HCO_Exportacion") = 6 THEN 'CIP'
                WHEN MAX(B10."U_HCO_Exportacion") = 7 THEN 'DAP'
                WHEN MAX(B10."U_HCO_Exportacion") = 8 THEN 'DPP'
                WHEN MAX(B10."U_HCO_Exportacion") = 9 THEN 'EXW'
                ELSE 'NO ASIGNADO'
            END
        ELSE 'NO ASIGNADO'
    END AS "Termino de negociacion", --5
    B2."U_U_SOLI_CIUENTREGA" AS "Ciudad de Entrega",--6
    B2."U_SECUENCIA" AS "Secuencia",--7
    B2."DocDate",--8
    B1."ItemCode" AS "Código",--9
    B3."SWeight1" AS "Peso",--10
    B1."Dscription" AS "Descripción",--11
    B1."Quantity" AS "Cantidad", --12
    B1."PriceBefDi" AS "Precio Unitario",--13
    B1."LineTotal" AS "Total base",--14
    CASE 
        WHEN B8."GroupName" <> 'Nacional' THEN B1."PriceBefDi" * B1."Quantity"
        ELSE NULL
    END AS "Valor en dólares",
    (B3."SWeight1" * B1."Quantity") AS "Peso Total", -- 15
    B2."DocNum",
    B2."U_U_SOLI_CIUDAD" AS "Dirección",
    B4."ItmsGrpNam" AS "Grupo de artículo",
    B5."Memo" AS "Zona Asignada",
    NULL AS "Condiciones de Pago",
    CASE 
        WHEN B8."GroupName" = 'Nacional' THEN
            CASE 
                WHEN B2."DocRate" = 1.00 THEN NULL
                ELSE B2."DocRate"
            END
        ELSE B2."DocRate"
    END AS "DocRate"
FROM 
    RIN1 B1
LEFT JOIN ORIN B2 ON B2."DocEntry" = B1."DocEntry"
LEFT JOIN OITM B3 ON B3."ItemCode" = B1."ItemCode"
LEFT JOIN OITB B4 ON B4."ItmsGrpCod" = B3."ItmsGrpCod"
LEFT JOIN OSLP B5 ON B5."SlpCode" = B2."SlpCode"
INNER JOIN OCRD B7 ON B7."CardCode" = B2."CardCode"
LEFT JOIN OCRG B8 ON B8."GroupCode" = B7."GroupCode"
LEFT JOIN RDR1 B9 ON B9."DocEntry" = B1."BaseEntry"
LEFT JOIN ORDR B10 ON B10."DocEntry" = B9."DocEntry"
WHERE 
    B2."DocDate" BETWEEN [%0] AND [%1]
GROUP BY 
    B2."DocNum",
    B2."DocDate",
    B2."U_SECUENCIA",
    B2."CardCode",
    B2."CardName",
    B2."U_U_SOLI_CIUDAD",
    B2."U_U_SOLI_CIUENTREGA",
    B1."ItemCode",
    B1."Dscription",
    B1."Quantity",
    B1."PriceBefDi",
    B1."LineTotal",
    B3."SWeight1",
    B4."ItmsGrpNam",
    B5."SlpName",
    B5."Memo",
    B2."DocRate",
    B8."GroupName";

hola @Benru agrega el número de línea.

Slds,

Podrías quitar el DISTINCT, pero ya no tendrías el control de los duplicados, entonces la opción de @Oscar1900 me parece mejor y vuelves a cada línea única.

Muchas gracias.
Ya lo pude solucionar.