Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/04/2010, 17:00
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
select con inconveniente en condicionales

Saludos

Estoy realizando un sistema de información para soporte de
equipos, y se quiere tener una consulta que haga lo siguiente

Seleccione algunos campos de la tabla equipos (id, codinventario, modelo)
donde esten activos (activo='S') y NO se encuentren en la tabla empleadosequipos (es decir, que no hayan sido asignados)
y adicional a esto QUE SEAN de un tipo especifico de equipo (idtipoequipos < 3 o idtipoequipo = 4 o idtipoequipo = 11)

Tenemos así la siguiente consulta

Código MySQL:
Ver original
  1. SELECT id, concat(codinventario,' ',modelo) as title FROM equipos
  2. WHERE estado =  'S'
  3. AND idtipoequipos >0 AND idtipoequipos <3
  4. AND id NOT IN  (SELECT idequipos FROM empleadosequipos)
  5. or idtipoequipos = 11  or  idtipoequipos = 4 order by modelo ;

Lo cual me trae el siguiente resultado

Código HTML:
Ver original
  1. id  title
  2. 4    4 culaquiercosa
  3. 5    5 pavilion

Sin embargo, si vemos en la tabla empleadosequipos, ya existe en dicha tabla el equipo con id= 4 asignado (es el registro con id 5 de la tabla empleadosequipos)

Código HTML:
Ver original
  1. id idempleados idequipos
  2. 5               7              4

Razón por la cual debería traerme lo siguiente

Código HTML:
Ver original
  1. id  title
  2. 5 5 pavilion

Intente esta otra consulta

Código MySQL:
Ver original
  1. SELECT id, concat(codinventario,' ',modelo) FROM equipos
  2. WHERE estado =  'S'
  3. AND id NOT IN (SELECT idequipos FROM empleadosequipos)
  4. AND  idtipoequipos = 1
  5. OR idtipoequipos = 2 OR idtipoequipos = 4 OR  idtipoequipos = 11
  6. order by modelo;

Obteniendo el mismo resultado

Quisiera saber que otras opciones podría usar (Estaba usando EXISTS o NOT EXISTS pero no lo he conseguido tampoco), o que sugerencias se pueden
hacer al modelo existente

La bd sobre la que estoy haciendo las pruebas las pueden acceder aquí

El usuario es mortiweb_test y el password es test123

Agradezco sus aportes
Saludos