Query mapa de relaciones

Buen dia, estoy haciendo un query para la trazabilidad de las ofertas de venta para ver si han sido facturadas, y de ser así, pues que me muestre el numero de documento .
Pero en total son 31166 Ofertas de venta y al ejecutar el query solo me salen 2265, me muestra solamente las que tienen orden y factura y necesito que me muestre las ofertas de venta, sin importar que no tengan orden ni factura.

Les dejo un ejemplo.

select distinct
T0.DocNum ‘Cotizacion’, T4.DocNum ‘Pedido’, T6.DocNum ‘Factura’, T2.U_NAME
from OQUT T0
inner join QUT1 T1
on T0.DocEntry = T1.DocEntry
left join RDR1 T3
on T3.BaseEntry = T0.DocEntry
inner join ORDR T4
on T4.DocEntry = T3.DocEntry
left join INV1 T5
on T5.BaseEntry = T4.DocEntry
inner join OINV T6
on T6.DocEntry = T5.DocEntry
inner join OUSR T2
on T2.USERID = T0.UserSign
where year(T0.DocDate) = 2022
and T2.U_NAME like ‘SPS%’

Saludos,

Prueba utilizando el LEFT JOIN o el RIGHT JOIN. Con el INNER JOIN lo que haces es que precisamente por cada registro encontrado en la tabla “A”, tenga su correspondiente en la tabla “B”, sin embargo, con el LEFT O RIGHT JOIN, se consigue que si una de las tablas tiene más registros que la otra, se puedan visualizar de igual manera aunque no tenga ninguna relación.

Ejemplo:

Tenes una tabla de “Autos” y otra de “Conductores”. Lo que querés hacer es mostrar todos los autos sin importar que tenga un conductor asignado o no, entonces lo que haces es utilizar el LEFT o el RIGHT JOIN (SELECT * FROM “AUTOS” A LEFT JOIN “CONDUCTORES” C ON A.“Cod_Conductor” = C.“Cod_Conductor”) para considerar los registros totales de una tabla u otra. Espero esta info te sirva.

1 me gusta

Al final asi quedo el Query, ya resuelto.

SELECT DISTINCT
CONVERT(date, T0.DocDate, 103) ‘Fecha cotizacion’,
T0.DocNum ‘Cotizacion’,
T3.DocNum ‘Pedido’,
T5.DocNum ‘Factura’,
T7.SlpName ‘Cartera’,
T3.DocTotal ‘Total Pedido’,
T6.U_NAME ‘Asesor’
FROM OQUT T0
INNER JOIN QUT1 T1
ON T0.DOCENTRY = T1.DOCENTRY
LEFT JOIN RDR1 T2
ON T2.BASEENTRY = T0.DOCENTRY
LEFT JOIN ORDR T3
ON T3.DOCENTRY = T2.DOCENTRY
LEFT JOIN INV1 T4
ON T4.BASEENTRY = T3.DOCENTRY
LEFT JOIN OINV T5
ON T5.DOCENTRY = T4.DOCENTRY
INNER JOIN OUSR T6
ON T6.USERID = T0.UserSign
INNER JOIN OSLP T7
ON T7.SlpCode = T0.SlpCode
WHERE YEAR(T0.DocDate) = 2022
AND T6.U_NAME LIKE ‘SPS%’
ORDER BY T0.DocNum

Espero les sirva

1 me gusta

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