Skip to Content
avatar image
Former Member

Query de OV´s, OC´s y Facturas

Hola consultores! Estoy realizando un query para el departamento de ventas y prácticamente necesitan esto

# Orden de compra Factura OC Orden de venta Factura OV

Encontré esta consulta que muestra para las ordenes de compra,la factura respectiva y otros campos.

-- VISTA PRINCIPAL

SELECT DISTINCT

T0.DocNum 'Orden de compra' ,T0.NumAtCard [Referencia] ,T0.DocDate [Fecha],

T1.DocNum 'Factura Orden de Compra', T1.NumAtCard [Referencia], T1.DocDate [Fecha]

FROM OPOR T0

LEFT JOIN

(

-- VISTA "FACTURA - ÓRDEN DE COMPRA

SELECT DISTINCT T1.DocNum, T1.NumAtCard, T1.DocDate, T0.BaseEntry, T0.BaseType

FROM PCH1 T0

INNER JOIN OPCH T1 ON T0.DocEntry = T1.DocEntry

WHERE T0.BaseType = 22

UNION ALL

-- VISTA "FACTURA - ENTRADA - ÓRDEN DE COMPRA

SELECT DISTINCT T1.DocNum, T1.NumAtCard, T1.DocDate, T2.BaseEntry, T2.BaseType

FROM PCH1 T0

INNER JOIN OPCH T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN PDN1 T2 ON T0.BaseEntry = T2.DocEntry AND T0.BaseType = T2.ObjType

WHERE T2.BaseType = 22

) T1

ON T0.DocEntry = T1.BaseEntry AND T0.ObjType = T1.BaseType

WHERE T0.DocDate >= '20151001' AND T0.DocDate <= '20151031'

ORDER BY 1

Y funciona perfectamente, el detalle es ahora mostrar las OV´s y las facturas de las mismas. Lo que planeo hacer es basarme en esa consulta para realizar la otra. Mi pregunta sería si puedo hacer uso de un UNION para juntar esas 2 consultas y que se muestren simultáneamente o mejor aun, mostrar todo en una sola consulta sin necesidad del union y ya decir si es OC u OV, podria ser un case.


Si alguien tiene una consulta para las OV´s o una para los 2 tipos de ordenes o alguna idea de como seguir de aqui se los agradecería.

Saludos!

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    avatar image
    Former Member
    Nov 04, 2015 at 08:54 PM

    Al final use esta consulta, en resumen muestra tu orden de venta, orden de compra del cliente y factura. La dejo aquí por si alguien le da uso algún día.

    SELECT Distinct T0.DocNum 'Orden de venta',t0.numatcard 'Orden de compra',t2.docnum 'Factura' ,(t2.doctotal/1.16) as 'Importe Factura',t2.doctotal 'Importe neto Factura',T2.CardName 'Cliente',  T0.DocDate 'Fecha orden',T2.DocDate 'Fecha factura', T3.SlpName 'Empleado Ventas'

    FROM ORDR T0   

    INNER JOIN INV1 T1 ON T1.BaseEntry=T0.DocEntry AND T1.BaseType='17'   

    INNER JOIN OINV T2 ON T2.DocEntry=T1.DocEntry

    inner join OSLP T3 on T2.SlpCode=T3.SlpCode

    group by T2.DocNum,T0.DocNum,T2.DocTotal,T2.CardName,T0.DocDate, T2.DocDate,T3.SlpName,t0.NumAtCard

    order by 6

    Add comment
    10|10000 characters needed characters exceeded