Orden de Venta y sus Articulos

Buenas tardes

Espero que puedan apoyarme con un query, donde me muestre por orden de venta el articulo que se capturo, pero necesito como filtro todos los ItemCode que empiecen con 01 pero que no tengan en la misma orden de venta los ItemCode que empiecen con 03. En la mayoria de nuestras ordenes de venta se capturan articulos que empiezan con 01 y 03, pero me han solicitado pasar un listado de las ordenes de venta donde no se haya capturado el 03, he sacado un reporte simple donde muestra el detalle por Orden de Venta y tuve que filtrarlo en excel, pero necesitan este query de forma fija.
Espero haberme explicado :slight_smile:
De antemano agradezco el apoyo que puedan brindarme

Hola @america, por lo que dices que tienes el Query del detalle de las Órdenes de Venta, ya lo que te falta creo es muy simple.

Hablando de SQL, o del Query Manager de SAP, puedes usar la función LIKE/NOT LIKE para buscar coincidencias que no sean exactas. Es decir, quieres las órdenes donde no se hayan capturado productos que inicien su código con 03, por lo que podrías poner una condición que sea:

SELECT …
FROM …
WHERE ItemCode NOT LIKE ‘03%’

El NOT LIKE buscará todo lo que no coincida con lo que le indiques, y el símbolo de porcentaje en 03% indica que buscas coincidencias que inicien con 03 y después tengan cualquier otra cosa.

Ojo, esto te va a filtrar solo por linea, es decir que te va a seguir mostrando lineas de OV que incluyan ese artículo. Como en tu caso deseas que no se vea ninguna linea de dichas OV, yo lo que haría sería que la condición fuera un subquery donde obtenga todos los DocEntry de las OV que tienen ese artículo:

SELECT DISTINCT
DocEntry
FROM RDR1
WHERE ItemCode NOT LIKE ‘03%’

Y eso iría en el Query que ya tienes armado como condición:

SELECT
tu query
FROM
las tablas que usas
WHERE
condiciones que ya tengas
AND
DocEntry IN (SELECT DISTINCT DocEntry FROM RDR1 WHERE ItemCode NOT LIKE ‘03%’)

¿Por qué no lo pruebas y nos comentas si resulta? Creo que con el query que mencionas tener ya cuentas con el 90% del trabajo previamente resuelto

Saludos

2 Me gusta

Hola @JonathanAzael Gracias por tu respuesta, intentaré con el subquery, lo unico que habia intentado es con el el LIke, pero obtenía como resultado el 01 o 03, mas no me muestra los que NO tienen el 03.
Intento y te comento :slight_smile:

He intentado con la opción que me proporcionas, pero no se cumplen las condiciones

SELECT T0.[DocNum], T0.[CANCELED], T0.[DocDate], T1.[ItemCode], T1.[Dscription], T1.[Quantity], T2.[USER_CODE] 
FROM 
ORDR T0  INNER JOIN RDR1 T1 ON T0.[DocEntry] = T1.[DocEntry] 
INNER JOIN OUSR T2 ON T0.[UserSign] = T2.[USERID]
where T1.ItemCode LIKE   '01%' and t0.DocEntry 
IN (SELECT DISTINCT DocEntry FROM RDR1 WHERE ItemCode NOT LIKE '03%')

Buen día @america hice la prueba con el query que proporcionas, y en mi caso si respeta los criterios.

SELECT 
	T0.[DocNum], T0.[CANCELED], T0.[DocDate], T1.[ItemCode], T1.[Dscription], T1.[Quantity], T2.[USER_CODE] 
FROM 
	ORDR T0 
	INNER JOIN RDR1 T1 ON T0.[DocEntry] = T1.[DocEntry] 
	INNER JOIN OUSR T2 ON T0.[UserSign] = T2.[USERID]
WHERE 
	T1.ItemCode LIKE 'A01%'
	AND T0.DocEntry IN (SELECT DISTINCT DocEntry FROM RDR1 WHERE ItemCode NOT LIKE 'A03%')
ORDER BY T0.DocDate DESC

Cuál es la condición que no te está resperando? la del LIKE o la del NOT LIKE?

:scream: el not like

Lo intente nuevamente y no me funciona en todas las ordenes de venta

la orden de venta 38911 tiene un 03, 39063, 39106 y otros

Tienes razón, creo que hay que cambiar el planteamiento, intenta modificando la última condición por la siguiente:

AND T0.DocEntry NOT IN (SELECT DISTINCT DocEntry FROM RDR1 WHERE ItemCode LIKE 'A03%')

Me parece que hacía falta invertir el IN por un NOT IN, y el último NOT LIKE por LIKE, porque de la forma anterior, aunque el documento tuviera el código en alguna de las líneas comoquiera lo tomaba en cuenta, y por eso no te filtraba todos los registros como tú lo necesitabas.

Espero que te sirva. Un saludo desde Monterrey (tierra de la carne asada :stuck_out_tongue_winking_eye:)

2 Me gusta

Buen día

Ahora si yujuu!! Muchas gracias por tu ayuda

2 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.