Avalados por :

Cómo bloquear facturas con precios diferentes a la lista de precios - Consulta SQL y solución de errores

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

Hola a todos,

He escrito la siguiente consulta para bloquear la factura que tiene precios que no son iguales al de la lista de precios como se muestra a continuación.

-- Para bloquear facturas que tienen precios diferentes a la lista de precios

IF (@transaction_type='A' OR @transaction_type = 'U') AND CAST(@OBJECT_TYPE = '18')

BEGIN

SELECT T1.ItemCode,

T1.Price AS PO_Price,

T2.U_ListPrice AS Listed_Price

FROM OPCH AS T0

INNER JOIN

PCH1 AS T1 ON

T0.DocEntry = T1.DocEntry

LEFT OUTER JOIN

[dbo].[@PRICELISTS] AS T2 ON

T1.ItemCode = T2.U_ItemNo

WHERE

T1.DocEntry = @list_of_cols_val_tab_del) AND

(T1.Price <> T2.U_ListPrice)

BEGIN

SET @error = 123

SET @error_message = 'Desviación en el precio'

END

END

Pero después de la ejecución, obtuve los siguientes errores

Msg 137, Nivel 15, Estado 2, Línea 2

Debe declarar la variable escalar "@transaction_type".

Msg 137, Nivel 15, Estado 2, Línea 19

Debe declarar la variable escalar "@list_of_cols_val_tab_del".

Msg 137, Nivel 15, Estado 1, Línea 22

Debe declarar la variable escalar "@error".

Msg 137, Nivel 15, Estado 1, Línea 23

Debe declarar la variable escalar "@error_message".

Por favor, ayuda

Saludos

Hitul

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola,

Prueba esto, si hay algún error, publica una captura de pantalla del mensaje de error aquí.

IF (@transaction_type='A' OR @transaction_type = 'U') AND (@OBJECT_TYPE = '18')

BEGIN

IF EXISTS (SELECT T0.docentry

FROM OPCH T0

INNER JOIN

PCH1 T1 ON

T0.DocEntry = T1.DocEntry

LEFT OUTER JOIN

[dbo].[@PRICELISTS] T2 ON

T1.ItemCode = T2.U_ItemNo

WHERE

T1.DocEntry = @list_of_cols_val_tab_del) AND T1.Price <> T2.U_ListPrice)

BEGIN

SET @error = 123

SET @error_message = 'Desviación en el precio'

END

END

Gracias y saludos,

Nagarajan

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

Hola Nagarajan,

Intenté la consulta anterior, pero sigo obteniendo el mismo error.

Saludos

Hitul

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

Hola,

Prueba esto:

SI (@transaction_type='A' O @transaction_type = 'U') Y (@OBJECT_TYPE = '18')

INICIO

SI EXISTE (SELECT T0.docentry

FROM OPCH T0

INNER JOIN

PCH1 T1 ON

T0.DocEntry = T1.DocEntry

LEFT OUTER JOIN

[dbo].[@PRICELISTS] T2 ON

T1.ItemCode = T2.U_ItemNo

DONDE

T1.DocEntry = @list_of_cols_val_tab_del) Y

(T1.Price <> T2.U_ListPrice)

INICIO

SET @error = 123

SET @error_message = 'Desviación en el precio'

FIN

FIN

Gracias y Saludos,

Nagarajan

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

Hola,

Si obtuviste una respuesta, por favor cierra este hilo marcando la respuesta correcta.

Gracias y saludos,

Nagarajan

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?