Primero: Las cadenas de texto se encierran entre apóstrofes. Los acentos inversos (`) son para los nombres de las tablas, bases, columnas y todo objeto creado por una sentencia DDL.
Segundo: IN() se usa para comparar un valor contra una
lista de valores, pero cuando envías esto:
No estás enviando una lista de valores, sino
una cadena de texto que contiene valores separados por comas, pero en esencia es un sólo valor, y no tres.
En tu caso, lo que debes hacer es comparar el valor buscado contra la lista
contenida en la cadena, y para eso no sirve el IN(). Se debe usar una función de cadena denominada FIND_IN_SET():
Código MySQL:
Ver originalDELIMITER $$
)
max(pkIntradayTransaction
) tbIntradayTransactions
pkInstrument
tbInstruments
-- El resto del codigo
DELIMITER;
De todos modos, para el caso específico, es mejor usar sentencias preparadas y no un parámetro de cadena de este modo. Pero sin saber cómo es el resto del proceso, no estoy muy seguro de lo que conviene hacer.