Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 04-07-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 22
gluglu Va por buen camino
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
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 04-07-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
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'
Responder Con Cita
  #4  
Antiguo 04-07-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 22
gluglu Va por buen camino
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 ?
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 04-07-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 05-07-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 05-07-2006
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
fer21unmsm Va por buen camino
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.
Responder Con Cita
  #8  
Antiguo 12-07-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Clausula LIKE federiconqn21 SQL 3 28-12-2005 16:49:13
Delete sin clausula where Fita Conexión con bases de datos 2 06-07-2005 02:35:04
Clausula order by C1, C2 desc Jack Firebird e Interbase 3 05-11-2004 21:29:22
Usando la cláusula LIKE mlara Firebird e Interbase 1 10-06-2003 07:12:01
Clausula UNION TJose Firebird e Interbase 3 15-05-2003 21:59:56


La franja horaria es GMT +2. Ahora son las 00:50:28.


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
Copyright 1996-2007 Club Delphi