¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo eliminar resultados en B1 usando el comando except

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

En SQL Server Management Studio, podía usar el comando except para eliminar cualquier resultado que aparezca en la segunda mitad de mi consulta.

¿Hay alguna forma de hacerlo en B1?

SELECT DISTINCT T2.[U_CardCode], T2.[U_UPC], T2.[U_Description], T2.[U_Price], T2.[U_CustPart], T0.[ItemCode], T0.[ItemName], 
T1.[PriceList],T3.[ListName],  T1.[Price] 
FROM OITM T0 INNER JOIN ITM1 T1 ON T0.ItemCode = T1.ItemCode 
INNER JOIN [dbo].[@CLIENTDESC]  T2 ON T0.[ItemCode]= T2.[U_UPC] 
INNER JOIN ITM1 T4 ON T4.[ItemCode] = T1.[ItemCode] 
INNER JOIN OPLN T3 ON T1.PriceList = T3.ListNum 
WHERE (T2.[U_Price] < 0 OR T1.[Price] < 0 
OR ( T1.[Price] < T2.[U_Price] AND T1.[PriceList] = '2') 
OR ( T1.[Price] > T2.[U_Price] AND T1.[PriceList] = '7') 
OR (T4.[PriceList] = '2' AND T4.[Price] < T1.[Price])) 
AND  T0.[validFor] = 'Y'


except
--elimina todo lo que ha sido facturado hace más de 7 días
SELECT DISTINCT T2.[U_CardCode], T2.[U_UPC], T2.[U_Description], T2.[U_Price], T2.[U_CustPart], T0.[ItemCode], T0.[ItemName], 
T1.[PriceList],T3.[ListName],  T1.[Price] 
FROM OITM T0 INNER JOIN ITM1 T1 ON
            
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Jonathan,

No sé por qué el EXCEPT no está funcionando, pero para esta consulta parece excesivo de todos modos. Simplemente puedes revertir la última condición y agregarla a la primera consulta:

SELECT DISTINCT T2.[U_CardCode], T2.[U_UPC], T2.[U_Description]
, T2.[U_Price], T2.[U_CustPart], T0.[ItemCode], T0.[ItemName]
, T1.[PriceList],T3.[ListName],  T1.[Price] 
FROM OITM T0 INNER JOIN ITM1 T1 ON T0.ItemCode = T1.ItemCode 
INNER JOIN [dbo].[@CLIENTDESC]  T2 ON T0.[ItemCode]= T2.[U_UPC] 
INNER JOIN ITM1 T4 ON T4.[ItemCode] = T1.[ItemCode] 
INNER JOIN OPLN T3 ON T1.PriceList = T3.ListNum
INNER JOIN INV1 T5 ON T5.ItemCode = T0.ItemCode 
WHERE (T2.[U_Price] < 0 OR T1.[Price] < 0 
OR ( T1.[Price] < T2.[U_Price] AND T1.[PriceList] = '2') 
OR ( T1.[Price] > T2.[U_Price] AND T1.[PriceList] = '7') 
OR (T4.[PriceList] = '2' AND T4.[Price] < T1.[Price])) 
AND  T0.[validFor] = 'Y'
AND t5.DocDate <= GETDATE() - 7

Saludos,

Johan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Modifiqué la consulta para tener 1 unión menos, lo que aceleró el proceso rápidamente, pero quiero mostrar cuando un artículo aún por facturar tiene un error en el precio.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Estoy utilizando MS SQL 2014 en B1 9.3

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Jonathan,

¿Estás utilizando una versión de SAP Business One basada en HANA?

Gracias,

Jesper

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?