Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2010, 12:56
learn_sql
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
duda consulta sql (principiante)

Bueno, tras unos ejercicios de sql y solventando dudas, me encuentro con más dudas :S pero esta vez no se salirme por mi cuenta...

En este caso quiero obtener el numero y el nombre de los departamentos que no tienen NINGÚN empleado que viva en madrid, tengo mi solución propuesta, y creo que se donde falla, pero no se solucionar el error...

las tablas sobre las consultas son las siguientes:

CREATE TABLE DEPARTAMENTS
( NUM_DPT INTEGER,
NOM_DPT CHAR(20),
PLANTA INTEGER,
EDIFICI CHAR(30),
CIUTAT_DPT CHAR(20),
PRIMARY KEY (NUM_DPT));

CREATE TABLE EMPLEATS
( NUM_EMPL INTEGER,
NOM_EMPL CHAR(30),
SOU INTEGER,
CIUTAT_EMPL CHAR(20),
NUM_DPT INTEGER,
NUM_PROJ INTEGER,
PRIMARY KEY (NUM_EMPL),
FOREIGN KEY (NUM_DPT) REFERENCES DEPARTAMENTS (NUM_DPT),
FOREIGN KEY (NUM_PROJ) REFERENCES PROJECTES (NUM_PROJ));

y mi solución de momento es esta:

SELECT D.NUM_DPT, NOM_DPT
FROM EMPLEATS E, DEPARTAMENTS D
WHERE E.NUM_DPT = D.NUM_DPT
GROUP BY CIUTAT_EMPL, D.NUM_DPT, NOM_DPT
HAVING CIUTAT_EMPL <> 'MADRID'
ORDER BY NOM_DPT ASC

El error está en que si tengo un departamento con empleados en madrid y en barcelona por ejemplo, la salida no tendria que sacar es departamento ya que contiene al menos un empleado en madrid...

Alguna idea? (anidando subconsultas?¿ no se como hacerlo para obtener la consulta deseada :( )

Gracias de antemano como siempre ^^

pepe