Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Problemas con clausula IN en MySQL (https://www.clubdelphi.com/foros/showthread.php?t=33347)

Coco_jac 04-07-2006 18:19:15

Problemas con clausula IN en MySQL
 
Hola amigos, tengo problemas con una query, intento sacar el personal que no ah marcado en un determinado dia, para eso utilizo la clausula IN, pero si resultados, me sale error de sintaxis. es valida la clausula IN en MySQl ???

Código SQL [-]
select datatrab.nomtra,datatrab.codtra 
from datatrab
inner join registro on datatrab.codtra=registro.codtra
where 
datatrab.codtra not in (select * from registro where fecha='2006-07-04' and left(codtra,1)='O')
Muchas Gracias.

gluglu 04-07-2006 18:43:44

En el Select anidado no puedes poner '*' sino tienes que poner en concreto el campo que necesita cumplir la condición 'in', es decir, si lo he entendido correctamente deberías poner
Código SQL [-]
select datatrab.nomtra,datatrab.codtra
from datatrabinner
join registro on datatrab.codtra=registro.codtra
where datatrab.codtra not in
(select registro.codtra from registro where fecha='2006-07-04' and left(codtra,1)='O')

Saludos :)

Coco_jac 04-07-2006 18:57:02

Hola Gracias por responder, hize loa cambios pero no tengo resultados, me sigue botando error :

Código Delphi [-]
select datatrab.codtra
from datatrab
inner join registro on datatrab.codtra=registro.codtra
where datatrab.codtra not in
(select registro.codtra from registro where registro.fecha='2006-07-04' and left(registro.codtra,1)='O')

Este es el error :

Código Delphi [-]
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 'select registro.codtra from registro where registro.fecha='2006'

gluglu 04-07-2006 19:06:56

Prueba a ejecutar primero el Select anidado para ver el resultado que te dá. Y después pruebas con la sentencia completa.

No trabajo con MySQL pero al parecer estás utilizando algo mal en la sintaxis misma.

Esa sentencia la ejecutas desde dentro de alguna aplicación Delphi o directamente desde el editor SQL del propio MySQL ?

Coco_jac 04-07-2006 19:20:25

Hola, ya eh probado lo que dices, y si ejecuto el select anidado y todo bien, pero todo el query me sale el error mencionado.
Lo ejecuto desde un editor de MySQl el SQLYog, la cual es una vesion free.

Coco_jac 05-07-2006 17:07:52

Hola amigos, estube mirando el manual de MySlQ 5.0 con respecto a la clausula IN, pero no estoy seguro si sea valida para versiones anteriores 4.2 la cual manejo........
Espero sus comentarios, con respesto a mi poblema ya que mi query me salta error de sintaxis.

Gracias

fer21unmsm 05-07-2006 17:46:56

Cita:

Empezado por Coco_jac
Hola amigos, estube mirando el manual de MySlQ 5.0 con respecto a la clausula IN, pero no estoy seguro si sea valida para versiones anteriores 4.2 la cual manejo........
Espero sus comentarios, con respesto a mi poblema ya que mi query me salta error de sintaxis.

Gracias

Hola Coco, me parece que tienes razón parece que la clausula IN no es soportado si no hasta la versión 5.0 de MySql, pero puedes probar haciendo otra consulta simple que utilice la clausula IN para despejar dudas, estoy casi seguro que no funciona por la version que tienes.

En todo caso si despues de probar no te funciona por la clausula IN, descargate la versión 5.0 de:

http://dev.mysql.com/downloads/

Saludos y suerte.

roman 12-07-2006 09:34:01

Hola,

No sé si ya has resuelto este problema. En todo caso te comento que las subconsultas sí están soportadas en la versión 4.2 de MySql. No estoy seguro de cuál sea la causa del error pero de entrada me parece raro utilizar un join junto con una subconsulta. Me parece que debería funcionar así:

Código SQL [-]
select datatrab.nomtra,datatrab.codtra 
from datatrab
where 
datatrab.codtra not in (select codtra from registro where fecha='2006-07-04' and left(codtra,1)='O')

// Saludos


La franja horaria es GMT +2. Ahora son las 13:34:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi