Hola, necesito consultar campos de mysql en sql server y me salta error en los IF y no tengo idea del porqué. Probé la query en mysql y anda bien:
SELECT * FROM OPENQUERY(MYSQL,
'SELECT
protocolo.IDPROTOCOLO,
protocolo.NROPROTOCOLO,
protocolo.FECHACREACION,
protocolo.IDVETERINARIA,
veterinaria.RAZONSOCIAL,
veterinaria.DIRECCION,
veterinaria.IDLOCALIDAD,
veterinaria.CUIT * 1,
veterinaria.TELPRINCIPAL,
protocolo.PRECIO,
1 AS NROCAJA,
IF(veterinaria.IDTIPOIVA = '' OR veterinaria.IDTIPOIVA = NULL,IF(veterinaria.CUIT = '' OR veterinaria.CUIT = ''NULL'',1,3),veterinaria.IDTIPOIVA),
0 AS pedido,
DATE_FORMAT(NOW( ), "%H:%i:%S" ),
DATE_FORMAT(NOW( ), "%H:%i:%S" ) as hora,
0 AS DEB,
0 AS CRED,
1,
4101001,
IF (veterinaria.IDTIPOIVA = 3, ''A'',
IF (veterinaria.IDTIPOIVA = 2 OR veterinaria.IDTIPOIVA = 1 OR veterinaria.IDTIPOIVA = 6 , ''B'',
IF (veterinaria.IDTIPOIVA = 4, ''C'',
IF(veterinaria.IDTIPOIVA = '' OR veterinaria.IDTIPOIVA = NULL,IF(veterinaria.CUIT = '' OR veterinaria.CUIT = NULL,''B'',''A''),''B''))))
FROM protocolo
LEFT JOIN veterinaria ON veterinaria.IDVETERINARIA = protocolo.IDVETERINARIA
')AS QRY
Y el error en cuestión es este:
> [42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]No se puede obtener la información de columna del proveedor OLE DB "MSDASQL" para el servidor vinculado "MYSQL". (7350)
[01000] [Microsoft][SQL Server Native Client 11.0][SQL Server]El proveedor OLE DB "MSDASQL" del servidor vinculado "MYSQL" devolvió el mensaje "[MySQL][ODBC 5.1 Driver][mysqld-5.7.24-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '),
0 AS pedido,
DATE_FORMAT(NOW( ), "%H:%i:%S" ),
DATE_FORMAT(NOW( ), "%H:%i:' at line 13". (7412)