más dudas principantes...
Publicado por pepe (4 intervenciones) el 04/10/2010 19:47:09
Bueno, tras unos ejercicios más, me encuentro con más dudas :S
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?
Gracias de antemano como siempre ^^
pepe
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?
Gracias de antemano como siempre ^^
pepe
Valora esta pregunta


0