Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 10

create database Hospital;

use Hospital;

create table Dept


(
Dept_No int not null,
DNombre varchar(50) not null,
Loc varchar(50) not null,
Constraint Pk_Dept primary key(Dept_No)
);

insert into Dept (Dept_No, DNombre, Loc) values(10,'Contabilidad','Polanco');


insert into Dept (Dept_No, DNombre, Loc) values(20,'Investigaci�n','Insurgentes');
insert into Dept (Dept_No, DNombre, Loc) values(30,'Ventas','Roma Norte');
insert into Dept (Dept_No, DNombre, Loc) values(40,'Producci�n','Condesa');

select * from Dept;

create table Emp(


Emp_No int not null,
Apellido varchar(50) null,
Oficio varchar(50) null,
Dir int null,
Fecha_Alt date null,
Salario float(9,2) null,
Comision float(9,2) null,
Dept_No int null,
Constraint PK_Emp primary key(Emp_No),
Constraint FK_Emp_Dept foreign key(Dept_No) references Dept(Dept_No)
);

insert into Emp(Emp_No, Apellido, Oficio, Dir, Fecha_Alt, Salario, Comision,


Dept_No)
values
(7369,'SANCHEZ','EMPLEADO',7902,'2004-12-17',10400,0,20),
(7499,'ARROYO','VENDEDOR',7698,'2010-02-27',20800,39000,30),
(7521,'SALA','VENDEDOR',689,'2011-02-22',16250,65000,30),
(7566,'JIMENEZ','DIRECTOR',7839,'2011-04-02',38670,0,20),
(7654,'MARTIN','VENDEDOR',7698,'2015-09-28',18200,182000,30),
(7698,'NEGRO','DIRECTOR',7839,'2016-05-01',37050,0,30),
(7782,'CEREZO','DIRECTOR',7839,'2015-06-09',31850,0,10),
(7788,'NINO','ANALISTA',7566,'2013-03-30',39000,0,20),
(7839,'REY','PRESIDENTE',0,'2000-11-17',65000,0,10),
(7844,'TOVAR','VENDEDOR',7698,'2004-09-08',19500,0,30),
(7876,'ALONSO','EMPLEADO',7788,'2010-05-03',14300,0,20),
(7900,'JIMENO','EMPLEADO',7698,'2012-12-03',12300,0,30),
(7902,'FERNANDEZ','ANALISTA',7566,'2012-12-03',39000,0,20),
(7934,'MU�OZ','EMPLEADO',7782,'2013-06-23',16900,0,10),
(7119,'SERRA','DIRECTOR',7839,'2014-11-19',22500,39000,20),
(7322,'GARCIA','EMPLEADO',7119,'2016-10-12',12900,0,20);

select * from Emp;

create table Hospital(


Hospital_Cod int not null,
Nombre varchar(50) null,
Direccion varchar(50) null,
Telefono varchar(50) null,
Num_Cama int null,
constraint PK_Hospital primary key(Hospital_Cod)
);

insert into Hospital(Hospital_Cod,Nombre,Direccion,Telefono, Num_Cama)


values(19,'Provincial','O Donell 50','5964-4256',502);
insert into Hospital(Hospital_Cod,Nombre,Direccion,Telefono, Num_Cama)
values(18,'General','Atocha s/n','5595-3111',987);
insert into Hospital(Hospital_Cod,Nombre,Direccion,Telefono, Num_Cama)
values(22,'La Paz','Castellana 1000','5923-5411',412);
insert into Hospital(Hospital_Cod,Nombre,Direccion,Telefono, Num_Cama)
values(45,'San Carlos','Ciudad Universitaria','5597-1500',845);

select * from Hospital;

create table Doctor(


Doctor_No int not null,
Hospital_Cod int not null,
Apellido varchar(50) null,
Especialidad varchar(50) null,
constraint PK_Doctor primary key(Doctor_No),
constraint FK_Doctor_Hospital foreign key (Hospital_Cod) references
Hospital(Hospital_Cod)
);

INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)


VALUES(22,386,'Cabeza D.','Psiquiatr�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(22,398,'Best D.','Urolog�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(19,435,'L�pez A.','Cardiolog�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(22,453,'Galo D.','Pediatr�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(45,522,'Adams C.','Neurolog�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(18,585,'Miller G.','Ginecolog�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(45,607,'Chuki P.','Pediatr�a');
INSERT INTO Doctor(Hospital_Cod,Doctor_No,Apellido,Especialidad)
VALUES(18,982,'Cajal R.','Cardiolog�a');

select * from Doctor;

create table sala(


Sala_cod int not null,
Hospital_Cod int not null,
Nombre varchar(50) null,
Num_Cama int null,
Constraint Pk_Sala primary key(Sala_Cod, Hospital_Cod),
Constraint FK_Sala_Hospital foreign key(Hospital_Cod) references
Hospital(Hospital_Cod));

INSERT INTO SALA VALUES(1,22,'Recuperaci�n',10);


INSERT INTO SALA VALUES(1,45,'Recuperaci�n',15);
INSERT INTO SALA VALUES(2,22,'Maternidad',34);
INSERT INTO SALA VALUES(2,45,'Maternidad',24);
INSERT INTO SALA VALUES(3,19,'Cuidados Intensivos',21);
INSERT INTO SALA VALUES(3,18,'Cuidados Intensivos',10);
INSERT INTO SALA VALUES(4,18,'Cardiolog�a',53);
INSERT INTO SALA VALUES(4,45,'Cardiolog�a',55);
INSERT INTO SALA VALUES(6,19,'Psiqui�tricos',67);
INSERT INTO SALA VALUES(6,22,'Psiqui�tricos',118);

SELECT * FROM Sala ;

CREATE TABLE Plantilla (


Empleado_No INT NOT NULL,
Sala_Cod INT NOT NULL,
Hospital_Cod INT NOT NULL,
Apellido VARCHAR(50) NULL,
Funcion VARCHAR(50) NULL,
T VARCHAR(15) NULL,
Salario float(9,2) NULL,
CONSTRAINT PK_Plantilla PRIMARY KEY(Empleado_No),
CONSTRAINT FK_Plantilla_Sala01 FOREIGN KEY (Sala_Cod,Hospital_Cod) REFERENCES
Sala(Sala_Cod,Hospital_Cod)
);

INSERT INTO Plantilla(Hospital_Cod,Sala_Cod,Empleado_No,Apellido, Funcion, T,


Salario)
VALUES
(22,6,1009,'Higueras D.','Enfermera','T',200500),
(45,4,1280,'Amigo R.','Interino','N',221000),
(19,6,3106,'Hern�ndez','Enfermero','T',275000),
(19,6,3754,'D�az B.','Enfermera','T',226200),
(22,1,6065,'Rivera G.','Enfermera','N',162600),
(18,4,6357,'Karplus W.','Interino','T',337900),
(22,1,7379,'Carlos R.','Enfermera','T',211900),
(22,6,8422,'Bocina G.','Enfermero','M',183800),
(45,1,8526,'Frank H.','Enfermera','T',252200),
(22,2,9901,'N��ez C.','Interino','M',221000) ;

SELECT * FROM Plantilla;

CREATE TABLE Enfermo (


Inscripcion INT NOT NULL,
Apellido VARCHAR(50) NULL,
Direccion VARCHAR(50) NULL,
Fecha_Nac VARCHAR(50) NULL,
S VARCHAR(2) NULL,
NSS INT NULL ) ;

INSERT INTO Enfermo(Inscripcion,Apellido,Direccion,Fecha_Nac,S,NSS)


VALUES
(10995,'Lagu�a M.','Goya 20','1989-may-16','M',280862422),
(14024,'Fern�ndez M.','Recoletos 50','1980-may-21','F',284991452),
(18004,'Serrano V.','Alcal� 12','1997-jun-23','F',321790059),
(36658,'Domin S.','Mayor 71','1982-ene-01','M',160654471),
(38702,'Neal R.','Orense 11','1992-jun-18','F',380010217),
(39217,'Cervantes M.','Per�n 38','1997-feb-28','M',440294390),
(59076,'Miller B.','L�pez de Hoyos 2','1975-sep-16','F',311969044),
(63827,'Ruiz P.','Ezquerdo 103','1990-dic-22','M',100973253),
(64823,'Fraiser A.','Soto 3','1995-jul-10','F',285201776),
(74835,'Ben�tez E.','Argentina','1998-oct-22','M',154811767);

SELECT * FROM Plantilla;

SELECT * FROM EMP;

--2. Mostrar el apellido, oficio, salario, salario anual, con las dos extras para
aquellos empleados con comisi�n mayor de 100000.

SELECT APELLIDO, OFICIO, SALARIO, SALARIO * 14 AS 'SALARIO ANUAL'


FROM EMP
WHERE COMISION > 10000;

3. Id�ntico del anterior, pero para aquellos empleados que su salario anual con
extras supere los 2200000

SELECT APELLIDO, OFICIO, SALARIO, SALARIO * 14 AS 'SALARIO ANUAL'


FROM EMP
WHERE SALARIO * 14 > 22000;

--4. Id�ntico del anterior, pero para aquellos empleados que sumen entre salario
anual con extras y comisi�n los 3 millones.

SELECT APELLIDO, OFICIO, SALARIO, SALARIO * 14 AS 'SALARIO ANUAL'


FROM EMP
WHERE SALARIO * 14 + comision > 30000;

--5. Mostrar todos los datos de empleados ordenados por departamento y dentro de
este por oficio para tener una visi�n jer�rquica.

SELECT * FROM EMP


ORDER BY DEPT_NO, OFICIO;

--6. Mostrar todas las salas para el hospital 45.


SELECT *
FROM SALA
WHERE HOSPITAL_COD = 45;

--7. Mostrar todos los enfermos nacidos antes de 1990.


SELECT *
FROM ENFERMO
WHERE FECHA_NAC < '1990-01-01';

--8. Igual que el anterior, para los nacidos antes de 1990 ordenados por n�mero de
inscripci�n descendente

SELECT *
FROM ENFERMO
WHERE CAST(FECHA_NAC AS date) < '01-ene-1990'
ORDER BY INSCRIPCION DESC;

--9. Listar todos los datos de la plantilla del hospital del turno de ma�ana
SELECT
FROM PLANTILLA
WHERE T ='M';

--10. Idem del turno de noche.


SELECT * FROM PLANTILLA WHERE T='N';

--11. Visualizar los empleados de la plantilla del turno de ma�ana que tengan un
salario entre 200000 y 225000.
SELECT *
FROM PLANTILLA
WHERE SALARIO BETWEEN 20000 AND 22500 AND T = 'M';

--12. Visualizar los empleados de la tabla emp que no se dieron de alta entre el
01/01/2010 y el 31/12/2012. SET DATEFORMAT DMY
SELECT *
FROM EMP
WHERE FECHA_ALT NOT BETWEEN '01/01/2010' AND '31/12/2012';

--13. Mostrar los nombres de los departamentos situados en ROMA NORTE o en


INSURGENTE.
SELECT DNOMBRE
FROM DEPT
WHERE LOC IN ('ROMA NORTE','INSURGENTES');

--14. Mostrar aquellos empleados con fecha de alta posterior al 1 de Julio de 2015.

SELECT *
FROM EMP
WHERE FECHA_ALT > '01-07-2015';
SELECT *
FROM EMP
WHERE FECHA_ALT > '2015/07/01';

--15. Lo mismo que en el ejercicio 14 pero con salario entre 150000 y 400000.
SELECT *
FROM EMP
WHERE FECHA_ALT > '01-07-2015' AND SALARIO BETWEEN 15000 AND 400000;

--16. Igual que en el ejercicio 15, pero tambi�n incluimos aquellos que no siendo
analista pertenecen al departamento 20.
SELECT * FROM EMP
WHERE FECHA_ALT > '01-07-2015' AND SALARIO BETWEEN 15000 AND 400000 OR (OFICIO <>
'ANALISTA' AND DEPT_NO = 20);

--17. Mostrar aquellos empleados cuyo apellido termine en �Z� ordenados por
departamento, y dentro de este por antig�edad.
SELECT * FROM EMP
WHERE APELLIDO LIKE '%Z' ORDER BY DEPT_NO, FECHA_ALT ASC;

--18. De los empleados del ejercicio 17 quitar aquellos que superen los 200000
mensuales.
SELECT *
FROM EMP
WHERE APELLIDO LIKE '%Z' AND SALARIO <= 20000 ORDER BY DEPT_NO, FECHA_ALT ASC;

--19. Mostrar todos los empleados cuyo oficio no sea analista.


SELECT *
FROM EMP
WHERE OFICIO <> 'ANALISTA';

--20. Igual que el ejercicio 19, pero mostr�ndolos de forma que se aprecien las
diferencias de salario dentro de cada oficio.
SELECT *
FROM EMP
WHERE OFICIO <> 'ANALISTA' ORDER BY OFICIO, SALARIO DESC;

--21. Del ejercicio 20, nos quedamos solo con aquellos cuyo n�mero de empleado no
este entre 7600 y 7900.
SELECT *
FROM EMP
WHERE OFICIO <> 'ANALISTA' AND EMP_NO NOT BETWEEN 7600 AND 7900 ORDER BY OFICIO,
SALARIO DESC;

--22. Mostrar los distintos oficios de los empleados.


SELECT DISTINCT OFICIO FROM EMP;

--23. Mostrar los distintos nombres de sala.


SELECT DISTINCT NOMBRE FROM SALA;

--24. Mostrar que personal �No Interino� existe en cada sala de cada hospital,
ordenado por hospital y sala.
SELECT HOSPITAL_COD, SALA_COD, APELLIDO, FUNCION
FROM PLANTILLA
WHERE FUNCION NOT IN ('INTERINO') ORDER BY HOSPITAL_COD, SALA_COD;

--25. Justificar el resultado de la siguiente consulta


SELECT DISTINCT DEPT_NO, APELLIDO FROM EMP;

-Indicar que ocurre y modificarla para que todo vaya bien.

SELECT DISTINCT APELLIDO,DEPT_NO FROM EMP;

--26. Seleccionar los distintos valores del sexo que tienen los enfermos.
SELECT DISTINCT S AS "SEXO" FROM ENFERMO;

--27. Indicar los distintos turnos de la plantilla del hospital, ordenados por
turno y por apellido.
SELECT DISTINCT T AS "TURNO", APELLIDO
FROM PLANTILLA ORDER BY TURNO, APELLIDO;

--28. Seleccionar las distintas especialidades que ejercen los m�dicos, ordenados
por especialidad y apellido.
SELECT DISTINCT ESPECIALIDAD, APELLIDO
FROM DOCTOR ORDER BY ESPECIALIDAD, APELLIDO;

--29. Seleccionar todos los empleados cuyo apellido comience por M


SELECT * FROM EMP WHERE APELLIDO LIKE 'M%';

--30. Seleccionar todos los empleados que contengan en su apellido ER.


SELECT * FROM EMP WHERE APELLIDO LIKE '%er%';

--31. Mostrar todos los empleados cuyo nombre sea de 4 letras y su apellido termine
con la letra a
SELECT * FROM EMP WHERE APELLIDO LIKE '___a' ;
***********************************************************************************
********************************

--32. Mostrar todos los empleados cuyo apellido comience entre las letras E y F.
SELECT * FROM EMP WHERE APELLIDO LIKE 'E%' OR APELLIDO LIKE 'F%';

***********************************************************************************
*******************************

--33. Mostrar todos los empleados cuyo apellido comience por la letra A, contenga
dentro de su apellido de la letra A a la M y que terminen en O.
//SELECT * FROM EMP WHERE APELLIDO LIKE "A%[A-M]%o";
SELECT * FROM EMP WHERE APELLIDO LIKE 'A%G%o';

--34. Mostrar todos los empleados cuyo apellido comience por la letra M y la
segunda letra no sea una A.
SELECT * FROM EMP WHERE APELLIDO LIKE 'M[^A]%';

--35. Mostrar todos los empleados cuyo apellido sea de 5 letras y su tercera letra
sea entra la A y la S terminando en Z.
SELECT * FROM EMP WHERE APELLIDO LIKE '__[a-�]_z';

--36. Mostrar todos los empleados cuyo apellido sea de 6 letras y no comience entre
la A y la D.
SELECT * FROM EMP WHERE APELLIDO LIKE '[^a-d]_____';

--37. Mostrar todos los que empiecen por la A y cuya cuarta letra no est�
comprendida entre A � G
SELECT * FROM EMP WHERE APELLIDO LIKE 'A__[^a-g]%' ;

--38. Muestra el total de empleados


SELECT COUNT(*) FROM emp;

SELECT COUNT(oficio) FROM emp;

--39. AVG: Realiza la media sobre la expresi�n dada, debe ser un tipo de dato Int.
SELECT AVG(salario) FROM emp ;

--40. MAX: Saca el valor m�ximo de una consulta.


SELECT MAX(fecha_alt) FROM emp;

--41. MIN: Devuelve el valor m�nimo de una consulta.


SELECT MIN(fecha_alt) FROM emp;

--42. SUM: Devuelve la suma de los salarios


SELECT SUM(salario) FROM emp;

--43. Encontrar el salario medio de los analistas, mostrando el n�mero de los


empleados con oficio analista.
SELECT COUNT(*) AS NUMERO_DE_EMPLEADOS, OFICIO, AVG(SALARIO) AS SALARIO_MEDIO
FROM EMP GROUP BY OFICIO HAVING OFICIO ='ANALISTA';

--44. Encontrar el salario mas alto, mas bajo y la diferencia entre ambos de todos
los empleados con oficio EMPLEADO.
SELECT OFICIO, MAX(SALARIO) AS SALARIO_MAS_ALTO, MIN(SALARIO) AS SALARIO_MAS_BAJO,
MAX(SALARIO) - MIN(SALARIO) AS DIFERENCIA_ENTRE_AMBOS
FROM EMP GROUP BY OFICIO HAVING OFICIO = 'EMPLEADO';

--45. Visualizar los salarios mayores para cada oficio.


SELECT OFICIO, MAX(SALARIO) AS SALARIO_M�XIMO FROM EMP GROUP BY OFICIO;

--46. Visualizar el n�mero de personas que realizan cada oficio en cada


departamento.
SELECT DEPT_NO AS N�_DE_DEPARTAMENTO, COUNT(*) AS N�_DE_PERSONAS, OFICIO FROM EMP
GROUP BY DEPT_NO, OFICIO ORDER BY 1;

--47. Buscar aquellos departamentos con cuatro o mas personas trabajando.


SELECT DEPT_NO AS N�_DE_DEPARTAMENTO, COUNT(*) AS N�_DE_PERSONAS FROM EMP GROUP BY
DEPT_NO HAVING COUNT(*) > 3;

--48. Mostrar el n�mero de directores que existen por departamento.


SELECT COUNT(*) AS NUMERO_EMPLEADOS, DEPT_NO FROM EMP WHERE OFICIO = 'DIRECTOR'
GROUP BY DEPT_NO;

--49. Visualizar el n�mero de enfermeros, enfermeras e interinos que hay en la


plantilla, ordenados por la funci�n.
SELECT COUNT(*) AS N�_DE_PERSONAS, FUNCION FROM PLANTILLA GROUP BY FUNCION HAVING
FUNCION IN ('ENFERMERO','ENFERMERA','INTERINO') ORDER BY FUNCION ;

--50. Visualizar departamentos, oficios y n�mero de personas, para aquellos


departamentos que tengan dos o m�s personas trabajando en el mismo oficio.
SELECT DEPT_NO AS N�_DE_DEPARTAMENTO, COUNT(*) AS N�_DE_PERSONAS, OFICIO FROM EMP
GROUP BY DEPT_NO,OFICIO HAVING COUNT(*) > 1 ;

--51. Calcular el salario medio, Diferencia, M�ximo y M�nimo de cada oficio.


Indicando el oficio y el n�mero de empleados de cada oficio.
SELECT OFICIO, COUNT(*) AS N�_DE_EMPLEADOS, MIN(SALARIO) AS SALARIO_M�NIMO,
MAX(SALARIO) AS SALARIO_M�XIMO, MAX(SALARIO) - MIN(SALARIO) AS DIFERENCIA,
AVG(SALARIO) AS MEDIA FROM EMP GROUP BY OFICIO;

--52. Calcular el valor medio de las camas que existen para cada nombre de sala.
Indicar el nombre de cada sala y el n�mero de cada una de ellas.
SELECT SALA_COD AS SALA, NOMBRE, AVG(NUM_CAMA) AS MEDIA_DE_CAMAS FROM SALA GROUP BY
NOMBRE, SALA_COD;

--53. Calcular el salario medio de la plantilla de la sala 6, seg�n la funci�n que


realizan. Indicar la funci�n y el n�mero de empleados.
SELECT COUNT(*) AS N�_DE_EMPLEADOS, FUNCION, AVG(SALARIO) AS SALARIO_MEDIO FROM
PLANTILLA GROUP BY FUNCION, SALA_COD HAVING SALA_COD = 6 ;

--54. Averiguar los �ltimos empleados que se dieron de alta en la empresa en cada
uno de los oficios, ordenados por la fecha.
SELECT MAX(FECHA_ALT) AS FECHA, OFICIO FROM EMP GROUP BY OFICIO ORDER BY 1;

--55. Mostrar el n�mero de hombres y el n�mero de mujeres que hay entre los
enfermos.
SELECT COUNT(*) AS N�MERO, S AS SEXO FROM ENFERMO GROUP BY S;

--56. Mostrar la suma total del salario que cobran los empleados de la plantilla
para cada funci�n y turno.
SELECT FUNCION, T AS TURNO, SUM(SALARIO) AS SUMA_DE_SALARIOS FROM PLANTILLA GROUP
BY FUNCION, T;

--57. Calcular el n�mero de salas que existen en cada hospital.


SELECT COUNT(*) AS N�_SALAS, HOSPITAL_COD FROM SALA GROUP BY HOSPITAL_COD;

--58. Mostrar el n�mero de enfermeras que existan por cada sala.


SELECT COUNT(*) AS N�_PERSONAS, SALA_COD, FUNCION FROM PLANTILLA WHERE
FUNCION='ENFERMERA' GROUP BY SALA_COD, FUNCION ORDER BY 1;

--60. Devuelva todos los Empleados que tengan asociado un departamento.

SELECT APELLIDO,OFICIO,DNOMBRE FROM EMP INNER JOIN DEPT ON EMP.DEPT_NO=DEPT.DEPT_NO


ORDER BY DEPT.DNOMBRE;

--61. La combinaci�n Full Join muestra las coincidencias de la tabla Dept con Emp,
m�s los valores que no coincidan, como el departamento Producci�n, que no tiene
empleados.

SELECT APELLIDO,OFICIO,DNOMBRE FROM EMP FULL JOIN DEPT ON EMP


emp.DEPT_NO=DEPT.DEPT_NO ORDER BY DEPT.DNOMBRE; ***ERROR***

--62. En esta consulta el departamento de producci�n tiene valores null porque le


--hemos dicho que seleccione la tabla de la derecha como principal (dept), con lo
--cual selecciona todos los campos de la tabla departamentos con coincidencias con
--emp o sin ellas.

SELECT APELLIDO,OFICIO FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPT_NO=DEPT.DEPT_NO


ORDER BY DEPT.DNOMBRE;

--63. Realiza un producto cartesiano combinando todos los empleados con todos los
departamentos.
SELECT APELLIDO,OFICIO,DNOMBRE FROM EMP CROSS JOIN DEPT;

--64. Ya hemos visto como combinar 2 tablas con inner join, el siguiente ejemplo
--muestra como combinar las 3 tablas que tenemos en la base de datos. Podremos
--combinar tantas tablas como queramos usando inner join o full join.
SELECT P.APELLIDO AS APELLIDO, S.NOMBRE AS SALA, H.NOMBRE AS HOSPITAL, S.NUM_CAMA
AS N�_DE_CAMAS FROM PLANTILLA P INNER JOIN SALA AS S ON P.HOSPITAL_COD =
S.HOSPITAL_COD AND P.SALA_COD = S.SALA_COD INNER JOIN HOSPITAL AS H ON
H.HOSPITAL_COD = P.HOSPITAL_COD;

--65.Combinar los valores de una tabla sobre s� misma. Para ello crearemos dos
--copias de la misma tabla poni�ndole un al�as, para posteriorme nte combinar los
--resultados de ambas copias.
SELECT A.EMP_NO AS PRIMER_EMPLEADO, A.APELLIDO, A.DEPT_NO, B.EMP_NO AS
SEGUNDO_EMPLEADO, B.APELLIDO FROM EMP AS A INNER JOIN EMP AS B ON A.EMP_NO =
B.EMP_NO ORDER BY B.EMP_NO;

También podría gustarte