Problema al hacer una Query entre dos tablas
Publicado por Conkeror (5 intervenciones) el 02/05/2006 12:07:52
Os explico mi problema, tengo una bdd hecha en oracle 8i. Y quiero hacer un informe donde me salga Departamento 1 ... y sus empleados(si tiene), Departamento 2 .... y sus empleados.
Estas son las TABLAS:
CREATE TABLE DEPARTAMENTO(
ID_DPTO NUMBER(9) CONSTRAINT cp_departamento_id_dpto PRIMARY KEY,
NOM_DPTO VARCHAR2(50),
DES_DPTO VARCHAR2(50),
CONSTRAINT ck_departamento_id_dpto CHECK (ID_DPTO>0)
);
CREATE TABLE EMPLEADO(
ID_EMPLE NUMBER(9) CONSTRAINT cp_empleado_id_dpto PRIMARY KEY,
USER_EMPLE VARCHAR2(20) NOT NULL,
PASS_EMPLE VARCHAR2(20) NOT NULL,
NOM_EMPLE VARCHAR2(50),
TEL_EMPLE NUMBER(9),
PUES_EMPLE VARCHAR2(50),
EMAIL_EMPLE VARCHAR(50),
ID_DPTO NUMBER(9),
CONSTRAINT ca_empleado_id_dpto FOREIGN KEY (ID_DPTO) REFERENCES DEPARTAMENTO,
CONSTRAINT ck_empleado_id_emple CHECK (ID_EMPLE>0)
);
He conseguido mostrar sólo los departamentos que tienen empleados, los que no tienen no me los muestra.
SELECT D.*, E.* FROM DEPARTAMENTO D, EMPLEADO E WHERE (D.ID_DPTO=E.ID_DPTO) AND (D.ID_DPTO>=:NDEPAR_A AND D.ID_DPTO<=:NDEPAR_B) ORDER BY D.ID_DPTO
Los informes lo hago con un programa externo, Report Manager. Así que, haber si me ayudais con la SQL.
Gracias de antemano
Estas son las TABLAS:
CREATE TABLE DEPARTAMENTO(
ID_DPTO NUMBER(9) CONSTRAINT cp_departamento_id_dpto PRIMARY KEY,
NOM_DPTO VARCHAR2(50),
DES_DPTO VARCHAR2(50),
CONSTRAINT ck_departamento_id_dpto CHECK (ID_DPTO>0)
);
CREATE TABLE EMPLEADO(
ID_EMPLE NUMBER(9) CONSTRAINT cp_empleado_id_dpto PRIMARY KEY,
USER_EMPLE VARCHAR2(20) NOT NULL,
PASS_EMPLE VARCHAR2(20) NOT NULL,
NOM_EMPLE VARCHAR2(50),
TEL_EMPLE NUMBER(9),
PUES_EMPLE VARCHAR2(50),
EMAIL_EMPLE VARCHAR(50),
ID_DPTO NUMBER(9),
CONSTRAINT ca_empleado_id_dpto FOREIGN KEY (ID_DPTO) REFERENCES DEPARTAMENTO,
CONSTRAINT ck_empleado_id_emple CHECK (ID_EMPLE>0)
);
He conseguido mostrar sólo los departamentos que tienen empleados, los que no tienen no me los muestra.
SELECT D.*, E.* FROM DEPARTAMENTO D, EMPLEADO E WHERE (D.ID_DPTO=E.ID_DPTO) AND (D.ID_DPTO>=:NDEPAR_A AND D.ID_DPTO<=:NDEPAR_B) ORDER BY D.ID_DPTO
Los informes lo hago con un programa externo, Report Manager. Así que, haber si me ayudais con la SQL.
Gracias de antemano
Valora esta pregunta


0