Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

duda consulta sql (principiante)

Estas en el tema de duda consulta sql (principiante) en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/10/2010, 12:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 5 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

Etiquetas: principiante, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:48.