Skip to Content
avatar image
Former Member

Orden de venta VS factura Consultas SAP

hola a todos

estoy realizando una consulta donde me regrese la comparacion de mi facturacion vs mi orden de venta el probrema que presento es que cuando tengo dos facturas que salen de una misma orden me repite las lineas y no me las agrupa se que es por la cuention de que se generan dos documentos diferentes el probrema aqui es que requiero ver que documento es y es necesario este campo en mi consulta, de que otra forma puedo agrupar esto??

select A.CardName as 'cliente' ,A.NumAtCard as 'Orden de cliente',E.NAME as 'Tranporte',A.DocDate as 'Fecha de Orden',A.DOCNUM as 'Numero de Orden',
B.ItemCode as 'Articulo de orden',B.Dscription as 'descripcion de orden',B.Quantity as 'cantidad de orden',
F.Name as 'ventana',D.U_LIDER_EMBARQUE
,D.DocDate as 'fecha de envio',D.DOCNUM as 'documento envio',SUM(C.Quantity) as 'cantidad de envio',
case
when B.Quantity - SUM(C.Quantity) = 0 then 'COMPLETO'
when B.Quantity - SUM(C.Quantity) < 0 then 'ENVIO MAYOR'
ELSE 'INCOMPLETO'
end as 'ESTATUS ENVIO'
 from ORDR A LEFT JOIN RDR1 B ON A.DocEntry = B.DocEntry
LEFT join INV1 C on A.DocEntry = C.BaseEntry and A.DocEntry = C.BaseRef and A.DocEntry = C.basedocnum and B.lineNum = C.lineNum
LEFT join OINV D on C.DocEntry = D.DocEntry 
LEFT JOIN [@VENTANA] E ON E.CODE = A.U_VENTANA
LEFT JOIN [@VENTANA] F ON F.CODE = D.U_VENTANA
WHERE A.DOCNUM = 597
GROUP BY A.CardName,A.NumAtCard,E.NAME,A.DocDate,A.DOCNUM,B.ItemCode,B.Dscription,B.Quantity,
F.Name,D.U_LIDER_EMBARQUE,D.DocDate,D.DOCNUM
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Nov 08, 2017 at 09:55 PM

    Hola Antonio , algo tarde la respuesta pero mira

    la razón por la que te esta duplicando el resultado es que no estas realizando bien la union de las tablas RDR1 y INV1 en el LEFT esta faltando que filtres también la posición de la linea de la cual esta tomando base INV1

    No se si me explique , pero te dejo ejemplo funcionando , ya solo agrega tus tablas de Usuario @Ventana y listo debe estas operando sin problemas.

    Aqui esta el Código y al final esta una imagen del resultado que me da , hice un ejemplo con lo que buscas , una Orden de Venta que se Factura en 2 Documentos.

    * Si la respuesta es Correcta cierra el tema

    Ejemplo

    SELECT
    -- Inicio Campos de Orden de Venta
    A4.CardName 'Cliente', A4.NumAtCard 'Orden de Cliente', A4.DocDate 'Fecha de Orden', A4.DocNum 'Numero de Orden',
    A3.ItemCode 'Articulo de Orden', A3.Dscription 'Descripcion de Orden', A3.Quantity 'Cantidad en Orden',
    -- Fin Campos de Orden de Venta 
    -- Inicio Campos de Factura
    A2.DocDate 'Fecha de Envio', A2.DocNum 'Documento de Envio', A1.Quantity 'Cantidad de Envio',
    -- Fin de Campos de Factura
    -- Comp. Cantidad
    CASE WHEN A3.Quantity - A1.Quantity = 0 THEN 'COMPLETO' 
    	 WHEN A3.Quantity - A1.Quantity < 0 THEN 'ENVIO MAYOR'
    	 ELSE 'INCOMPLETO' 
    END 'Estatus de Envio'
    -- Fin de Comp. Cantidad
    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
    WHERE A4.DocNum = 7066
    

    Add comment
    10|10000 characters needed characters exceeded