Anterior 2018

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

SINTAXIS PARA ADICIONAL UNA COLUMNA EN LA TABLA

ALTER TABLE MEDICOS


ADD E_MAIL_MED VARCHAR(10) NOT NULL;

----------------------
SINTAXIS PARA ELIMINAR UNA COLUMNA EN LA TABLA

ALTER TABLE MEDICOS


DROP COLUMN E_MAIL_MED;

-------------------------------------
SINTAXIS PARA MODIFICAR DATOS DE LA COLUMNA

ALTER TABLE MEDICOS


MODIFY NOM_MED VARCHAR(20);

-----------------------------------------
SINTAXIS PARA ELIMINAR LA TABLA

DROP TABLE MEDICOS;

--------------------------------------
SINTAXIS PARA ACTUALIZAR DATOS DE UNA COLUMNA

UPDATE MEDICOS
SET DIR_MED MIRAFLORES
WHERE CED_MED='1802';

TODOS LOS MEDICOS


UPDATE MEDICOS
SET TIP_MED='CIRUJANO';
----------------------------------------

SINTAXIS PARA ELIMINAR UNA FILA DE LA TABLA


DELETE FROM MEDICOS
WHERE CED_MED='1802';

--------------------------------

Mostrar el nombre, apellido y sueldo de los empleados cuyo seuldo sea mayor a 1000

SELECT NOM_EMP, APE_EMP, SUE_EMP


FROM EMPLEADOS
WHERE SUE_EMP>1000;

--------------------------------------------------
Mostrar el apellido, sue y fecha de ingreso de los empleados con el cargo de
SECRETARIA

SELECT APE_EMP, SUE_EMP, FEC_ING_EMP


FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA';
-------------------------------------------------

Mostrar el apellido , direccion, telefono de los empleados que no vivan en FICOA

SELECT APE_EMP, DIR_EMP, TEL_EMP


FROM EMPLEADOS
WHERE DIR_MED<>'FICOA';
----------------------------------------------------

MOSTRAR EL NOMBRE, APELLIDO, SUELDO,DIRECION DE LOS EMPLEADOS QUE GANEN MAS DE 500
PERO MENOS DE 1900 Y Q VIVAN EN ATOCHA
SELECT NOM_EMP, APE_EMP, SUE_EMP, DIR_EMP
FROM EMPLEADOS
WHERE SUE_EMP>500 AND <SUE_EMP<1900 AND DIR_EMP='ATOCHA';
--------------------------------------------------------

Mostrar la cedula, el apellido y la comision de las secretarias que no vivan ni en


pelileo ni en Miraflores
SELECT CED_EMP, APE_EMP, COM_EMP
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA' AND DIR_MED<>'PELILEO' AND DIR_MED<>'MIRAFLORES';
----------------------------------------------------

Mostrar elnombre, apellido, direccion y sueldo de los empleados que vivan en ATOCHA
O EN FICOA O EN MOCHA
SELECT NOM_EMP, APE_EMP, DIR_EMP, SUE_EMP
FROM EMPLEADOS
WHERE DIR_EMP='ATOCHA' OR DIR_EMP='FICOA' OR DIR_EMP='MOCHA'
OR DIR_EMP='Atocha' OR DIR_EMP='atocha' OR DIR_EMP='Ficoa' OR DIR_EMP='Mocha';

------------------------------------------------
MOstrar el nombre, apeliido, sueldo y comision de los empleados que ganen entre 700
y 1000 dolares o entre 1500 y 2000 dolares
SELECT NOM_EMP, APE_EMP, SUE_EMP, COM_EMP
FROM EMPLEADOS
WHERE (SUE_EMP>700 AND SUE_EMP<100) OR (SUE_EMP>1500 AND SUE_EMP<2000);
------------------------------------------------------------------------

MOstrar el nombre, apellido y direccion de los empleados cuya direccion no sea


FICOA
SELECT NOM_EMP, APE_EMP, DIR_EMP
FROM EMPLEADOS
WHERE NOT(DIR_EMP='FICOA');
-----------------------------------------------------------

Mostrar el nombre, apellido, sueldo, comision y una columna virtual llamada SALARIO
que sea el resultado del sueldo + comision
SELECT NOM_EMP, APE_EMP, SUE_EMP, COM_EMP, SUE_EMP+COM_EMP, "SALARIO"
FROM EMPLEADOS

-----------------------------
Mostrar el apellido, cargo, sueldo y sueldo anual de las secretarias.
SELECT APE_EMP, CAR_EMP, SUE_EMP, SUE_EMP*12;
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA';
----------------------------------------------------------

Mostrar el nombre, apellido y la edad de los empleados con sueldo mayor a 1000
dolares
SELECT NOM_EMP, APE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD
FROM EMPLEADOS
WHERE SUE_EMP>1000;
-----------------------------------------------------

Mostrar el nombre, apellido, edad y antiguedad en la empresa de los empleados


mayores a 20 a�os de edad
SELECT NOM_EMP, APE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD, (SYSDATE-FEC_ING_EMP)/365
ANTIGUEDAD
FROM EMPLEADOS
WHERE (SYSDATE-FEC_ING_EMP)/365 EDAD>20;
------------------------------------------------------------

Mostrar la cedula, nombre, apellido, sueldo anual y comision anual de los empleados
cuya antiguedad sea mayor 2 a�os
SELECT CED_EMP, NOM_EMP, APE_EMP, SUE_EMP, SUE_EMP*12, "SUELDO ANUAL", COM_EMP,
COM_EMP*12, "COMISION ANUAL",(SYSDATE-FEC_ING_EMP)/365 ANTIGUEDAD
FROM EMPLEADOS
WHERE (SYSDATE-FEC_ING_EMP)/365 ANTIGUEDAD >2;
-------------------------------------------------------------

Mostrar el apellido y sueldo de los empleados que ganen entre 1000 y 1800
SELECT APE_EMP, SUE_EMP
FROM EMPLEADOS
WHERE SUE_EMP BETWEEN 1000 AND 1800;
-----------------------------------------------------------

Mostrar el nombre y la cantidad de computadoras de las oficinas ubicadas en el piso


3
SELECT NOM_COM, CAN_COM
FROM COMPUTADORAS
WHERE NUM_PIS=3,
-------------------------------------------

Mostrar el nombre, apellido, sueldo y direccion de los empleados que ganen mas de
900 y que vivan en FICOA.
SELECT NOM_EMP, APE_EMP, SUE_EMP, DIR_EMP
FROM EMPLEADOS
WHERE SUE_EMP>900 AND DIR_EMP='FICOA';
----------------------------------------------

Mostrar el apellido y el sueldo de los empleados con el cargo de CONTADOR que ganen
menos de 500.
SELECT APE_EMP, SUE_EMP
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR' AND SUE_EMP<500:
--------------------------------------------------------------

Mostrar el nombre, apellido cargo y sueldo de los empleados que ganen mas de 500 y
cuyo cargo sea CONTADOR o CONTADORA.
SELECT NOM_EMP, APE_EMP, CAR_EMP, SUE_EMP
FROM EMPLEADOS
WHERE SUE_EMP>500 AND ((CAR_EMP='CONTADOR') OR (CAR_EMP='CONTADORA'));
---------------------------------------------------------

mostrar el nombre apellido cargo sueldo y la edad de los empleados que tengan mas
de 20 a�os y que su sueldo este entre 1000 y 3000 y que tengan el cargo de contador
o gerente

SELECT NOM_EMP, APE_EMP, CAR_EMP, SUE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD


FROM EMPLEADOS
WHERE ((SYSDATE-FEC_NAC_EMP)/365 EDAD>20) AND ((SUE_EMP>1000) AND (SUE_EMP<3000 ))
AND((CAR_EMP='CONTADOR') OR(CAR_EMP='CONTADORA'));
---------------------------------------------------------
MOSTRAR EL NOMBRE, APELLIDO, SUELDO Y EDAD DE LOS EMPLEADOS QUE NO TENGAN MAS DE 30
A�OS Y NO GANEN MENOS DE 2000 Y CUYO CARGO NO SEA NI GERENTE NI CONTADOR.

SELECT NOM_EMP, APE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD


FROM EMPLEADOS
WHERE NOT (SYSDATE-FEC_NAC_EMP)/365 EDAD>30
AND NOT(SUE_EMP<2000)
AND NOT((CAR_EMP='GERENTE') AND (CAR_EMP='CONTADOR'));
----------------------------------------------------------------

MOSTRAR EL NOMBRE Y APELLIDO DE LOS EMPLEADOS CUYO APELLIDO EMPIECE CON P Y TERMINE
CON Z.
SELECT NOM_EMP, APE_EMP
FROM EMPLEADOS
WHERE APE_EMP LIKE 'P%Z';
-----------------------------------------------------------

MOSTRAR EL NOMBRE Y APELLIDO DE LOS EMPLEADOS CUYO NOMBRE TIENE EN LA SEGUNDA


POSICION UNA LETRA E Y EN LA PENULTIMA POSICION UNA LETRA I.

SELECT NOM_EMP, APE_EMP


FROM EMPLEADOS
WHERE NOM_EMP LIKE '_E%I_';
------------------------------------------------------------

Mostrar el nombre, apellido y sueldo de los empleados que no ganen entre 900 y 1250
ni tampoco entre 1650 y 2000.
SELECT NOM_EMP, APE_EMP, SUE_EMP
FROM EMPLEADOS
WHERE NOT((SUE_EMP BETWEEN 900 AND 1250) AND (SUE_EMP BETWEEN 1650 AND 2000));
-----------------------------------------------------

MOSTRAR EL NOMBRE, APELLIDO, CARGO SUELDO, EDAD, ANTIGUEDAD DE LOS EMPLEADOS QUE NO
TENGAN UNA LETRA Z EN ALGUNA PARTE DEL NOMBRE Y QUE SU SUELDO ESTE ENTRE 1000 Y
1300 O ENTRE 1700 Y 2000 QUE VIVAN EN FICOA O ATOCHA O HUACHI Y QUE SU COMISION
ANUAL NO SEA MAYOR A 600 DOLARES.

SELECT NOM_EMP, APE_EMP, CAR_EMP, SUE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD,


(SYSDATE-FEC_ING_EMP)/365 ANTIGUEDAD, COM_EMP, COM_EMP*12 "COMISION ANUAL"
FROM EMPLEADOS
WHERE NOT(NOM_EMP LIKE %Z%) AND ((SUE_EMP BETWEEN 1000 AND 1300) OR (SUE_EMP
BETWEEN 1700 AND 2000)) AND ((DIR_EMP='FICOA') OR
(DIR_EMP='ATOCHA')OR(DIR_EMP='HUACHI')) AND NOT((COM_EMP*12) >600);

-----------------------------------------------------
Alterar la tabla PACIENTES adicionando la fecha de nacimiento del paciente tipo
DATE Obligatoria.
ALTERAR TABLE PACIENTES
ADD FEC_NAC_PAC DATE NOT NULL;
------------------------------------------------------

Borrar el campo fecha de nacimiento del paciente.


ALTER TABLE PACIENTES
DROP COLUMN FEC_NAC_PAC;
----------------------------------------------------

Actualizar la tabla MEDICOS, con la nueva direccion LA PRADERA al medico con cedula
'1801';
UPDATE MEDICOS
SET DIR_MED= 'PRADERA'
WHERE CED_MED='1081';
----------------------------------------------------

Actualizar a 40 dolares el costo de la consulta numero 5


UPDATE CONSULTA
SET COS_CON=40
WHERE NUM_CON=5;
-------------------------------------------------------

Actualizar con el nuevo supervisor 1804 a todos los medicos que tengan el grado de
especialista
UPDATE MEDICOS
SET SUPERVISOR='1804'
WHERE GRAD_MED='ESPECIALISTA';
-----------------------------------------------------

Actualizar a 3100 el sueldo de los cirujanos


UPDATE MEDICOS
SET SUE_MED=3100
WHERE TIP_MED='CIRUJANO';
---------------------------------

Eliminar al paciente con c�dula '1905'


DELETE FROM PACIENTES
WHERE CED_PAC='1905';
------------------------------------

Eliminar la atenci�n n�mero 3


DELETE FROM PACIENTES
WHERE NUM_ATE=3;

Adicionar a la tabla es tadios el clima de la ciudad de ubicacion del estadio.

ALTER TABLE ESTADIOS


ADD CLI_CIU VARCHAR(12);

Adicionar en la tabla ARBITROS la nacionalidad del �rbitro (obligatoria).


ALTER TABLE ARBITROS
ADD NAC_ARB VARCHAR(12) NOT NULL;

Eliminar de la Tabla PARTIDOS la columna Asistencia.


ALTER TABLE PARTIDOS
DROP COLUMN ASIS_PAR;

Modificar el nombre del arbitro para que sea CHAR(15).


ALTER TABLE ARBITROS
MODIFY NOM_ARB CHAR(15);

Mostrar la c�dula, nombre, y apellido del CLIENTE con el apellido VELEZ

SELECT CED_CLI, NOM_CLI, APE_CLI


FROM CLIENTES
WHERE APE_CLI='VELEZ';

Mostrar la cedula de los clientes que visitaron los empleados con c�dula 1801,1601
SELECT CED_CLI
FROM HORARIOS
WHERE CED_EMP='1801' AND CED_EMP='1601';

Mostrar la c�dula, nombre, y apellido del EMPLEADO con el apellido ALTAMIRANO


SELECT CED_EMP, APE_EMP
FROM EMPLEADOS
WHERE APE_EMP='ALTAMIRANO';

Eliminar las filas de los clientes cuyo nombre empiece con A


DELETE FROM CLIENTES
WHERE APE_CLI LIKE 'A%';

Eliminar todas las filas de la tabla ORGANIZACION


DELETE FROM ORGANIZACION;

Mostrar todos los empleados que no tengan comisi�n.


SELECT FROM EMPLEADOS
WHERE NOT COMI_EMP; (WHERE COMI_EMP IS NULL;)

Mostrar todos los clientess que no tengan celular.


SELECT FROM CLIENTES
WHERE CEL_CLI IS NULL;

ACTUALIZAR LA DIRECCION A PILLARO DEL ESTUDIANTE CON CEDULA 1804 DE LA TABLA


ESTUDIANTES.
UPDATE ESTUDIANTES
SET DIR_EST='PILLARO'
WHERE CED_EST='1804';

ACTUALIZAR EL PROMEDIO DEL ESTUDIANTE CON CEDULA 1815 A 7.8 DE LA TABLA


ESTUDIANTES.
UPDATE ESTUDIANTES
SET PROM_EST= 7.8
WHERE CED_EST='1815';

MOSTRAR EL NOMBRE, APELLIDO Y PROMEDIO DE LOS ESTUDIANTES CON PROMEDIO MAYOR A 8.5
SELECT NOM_EST, APE_EST, PROM_EST
FROM ESTUDIANTES
WHERE PROM_EST>8.5;

MOSTRAR EL NOMBRE, APELLIDO, DIRECCION Y TIPO DE SANGRE DE LOS ESTUDIANTES CON TIPO
DE SANGRE A+
SELECT NOM_EST, APE_EST, DIR_EST
FROM ESTUDIANTES
WHERE TIP_SAN_EST='A+';

MOSTRAR TODOS LOS DATOS DE LOS ESTUDIANTES QUE PERTENECEN AL CURSO C04.
SELECT FROM ESTUDIANTES
WHERE COD_CUR_PER='C04';

MOSTRAR LA CEDULA, NOMBRE, APELLIDO, EDAD Y PROMEDIO DE LOS ESTUDIANTES CON


PROMEDIO MENOR A 8.
SELECT CED_EST, NOM_EST, APE_EST, (SYSDATE-FEC_NAC_ESR)/365 EDAD
FROM ESTUDIANTES
WHERE PROM_EST >8;

MOSTRAR LA CEDULA, NOMBRE, APELLIDO Y EDAD DE LOS ESTUDIANTES MAYORES A 20 A�OS.


SELECT CED_EST, NOM_EST, APE_EST, (SYSDATE-FEC_NAC_ESR)/365 EDAD
FROM ESTUDIANTES
WHERE (SYSDATE-FEC_NAC_ESR)/365 >20;

MOSTRAR LA CEDULA, NOMBRE Y APELLIDO DE LOS ESTUDIANTES QUE LLEVEN 2 O MAS A�OS DE
ESTUDIO.
SELECT CED_EST, NOM_EST, APE_EST, (SYSDATE-FEC_ING_EST)/365 A�OS_DE_ESTUDIOS
FROM ESTUDIANTES
WHERE (SYSDATE-FEC_ING_EST)/365 >=2;

MOSTRAR LA CEDULA, NOMBRE, APELLIDO Y PROMEDIO DE LOS ESTUDIANTES CUYA DIRECCION


SEA DIFERENTE DE AMBATO.
SELECT CED_EST, NOM_EST, APE_EST, PROM_EST
FROM ESTUDIANTES
WHERE DIR_EST <> 'AMBATO';

MOSTRAR LA CEDULA, NOMBRE, APELLIDO Y PROMEDIO DE LOS ESTUDIANTES CUYA DIRECCION


SEA IGUAL A LATACUNGA Y EL PROMEDIO SEA MENOR A 8.
SELECT CED_EST, NOM_EST, APE_EST, PROM_EST
FROM ESTUDIANTES
WHERE DIR_EST='LATACUNGA' AND PROM_EST < 8;

MOSTRAR LA CEDULA, NOMBRE, APELLIDO Y PROMEDIO DE LOS ESTUDIANTES QUE NO VIVAN EN


LATACUNGA.

SELECT CED_EST, NOM_EST, APE_EST, PROM_EST


FROM ESTUDIANTES
WHERE NOT (DIR_EST='LATACUNGA');

MOSTRAR LA CEDULA, NOMBRE, APELLIDO, PROMEDIO Y DIRECCION DE LOS ESTUDIANTES CUYO


APELLIDO EMPIECEN CON LA LETRA A O CON LA LETRA B.
SELECT CED_EST, NOM_EST, APE_EST, PROM_EST, DIR_EST
FROM ESTUDIANTES
WHERE APE_EST LIKE 'A%' OR APE_EST LIKE 'B%';

MOSTRAR LOS DATOS DE LOS ESTUDIANTES QUE HAYAN NACIDO EN EL A�O 95.
SELECT FROM ESTUDIANTES
WHERE FEC_NAC_EST LIKE '%1995';

MOSTRAR LA CEDULA, NOMBRE, APELLIDO, PROMEDIO Y EDAD DE LOS ESTUDIANTES QUE TENGAN
UN PROMEDIO ENTRE 8 Y 9.
SELECT CED_EST, NOM_EST, APE_EST, PROM_EST, (SYSDATE-FEC_NAC_EST)/365 EDAD
FROM ESTUDIANTES
WHERE PROM_EST BETWEEN 8 AND 9;

MOSTRAR LA CEDULA, NOMBRE, APELLIDO, DIRECCION Y EDAD DE LOS ESTUDIANTES QUE VIVAN
EN AMBATO O LATACUNGA O SALCEDO Y ADEMAS
TENGAN UNA EDAD DE 20 O 21 O 22 A�OS
SELECT CED_EST, NOM_EST, APE_EST, DIR_EST ,(SYSDATE-FEC_NAC_EST)/365 EDAD
FROM ESTUDIANTES
WHERE DIR_EST IN( 'AMBATO','LATACUNGA','SALCEDO') AND (SYSDATE-FEC_NAC_EST)/365 IN
('20','21','22');

MOSTRAR LA CEDULA, NOMBRE, APELLIDO Y PROMEDIO DE LOS ESTUDIANTES QUE NO VIVAN EN


AMBATO ORDENADO DESCENDENTEMENTE POR APELLIDO.

SELECT CED_EST, NOM_EST, APE_EST, PROM_EST


FROM ESTUDIANTES
WHERE DIR_EST <> 'AMBATO'
ORDER BY APE_EST DESC;

MOSTRAR EL NOMBRE Y APELLIDO DEL ESTUDINTE CUYO PROMEDIO ES MAYOR


AL PROMEDIO DEL ESTUDIANTE CON APELLIDO GUALA

SELECT NOM_EST, APE_EST


FROM ESTUDIANTES
WHERE PROM_EST > (SELECT PROM_EST
FROM ESTUDIANTES
WHERE APE_EST='GUALA');

MOSTRAR EL NOMBRE Y APELLIDO Y PROMEDIO DEL ESTUDIANTE CUYO PROMEDIO


ES MAYOR AL PROMEDIO DEL ESTUDIANTE CON APELLIDO RODRIGUEZ, PERO MENOR
AL PROMEDIO DEL ESTUDIANTE CON APELLIDO VELEZ
SELECT NOM_EST, APE_EST
FROM ESTUDIANTES
WHERE PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE APE_EST='RODRIGUEZ')
AND PROM_EST< (SELECT PROM_EST
FROM ESTUDIANTES
WHERE APE_EST='VELEZ');

MOSTRAR EL NOMBRE, APELLIDO, DIRECCION Y TELEFONO DE LOS ESTUDIANTES


QUE NO VIVEN EN LA MISMA DIRECCION QUE EL ESTUDIANTE CON ci: 1801

SELECT NOM_EST, APE_EST, DIR_ES,TEL_EST


FROM ESTUDIANTES
WHERE DIR_EST <> (SELECT DIR_EST
FROM ESTUDIANTESS
WHERE CED_EST='1801');

MOSTRAR EL NOMBRE, APELLIDO Y PROMEDIO DEL ESTUDIANTE QUE TENGA


MENOR PROMEDIO AL DEL ESTUDIANTE CUYO APELLIDO TERMINA EN Z
SELECT NOM_EST, APE_EST
FROM ESTUDIANTES
WHERE PROM_EST <ANY (SELECT PROM_EST
FROM ESTUDIANTES
WHERE APE_EST LIKE '%Z');

MOSTRAR EL NOMBRE APELLIDO Y PROMEDIO DE LOS ESTUDIANTES QUE (MUCHO OJO)


TIENEN UNA NOTA MAYOR A LA NOTA DEL ESTUDIANTE CUYO APELLIDO
TIENE UNA LETRA O EN LA SEGUNDA POSICI�N

SELECT NOM_EST, APE_EST,PROM_EST


FROM ESTUDIANTES
WHERE NOT_EST > ANY (SELECT NOT_EST
FROM ESTUDIANTES
WHERE APE_EST LIKE '_O%');

MOSTRAR EL NOM;APE DEL ESTUDIANTE QUE TIENE UN PROMEDIO MENOR AL


ESTUDIANTE AL CUAL SE LE PRESTO EL LIBRO L03
SELECT NOM_EST, APE_EST
FROM ESTUDIANTES
WHERE PROM_EST<(SELECT PROM_EST
FROM ESTUDIATES
WHERE COD_LIB_PRES ='L03');

Mostrar el nombre, apellido y sueldo de los empleados que ganen mas de 700 dolares,
ordenados ascendentemente por el sueldo.
SELECT NOM_EST, APE_EST,
FROM ESTUDIANTES
WHERE SUE_EMP >700;
ORDER BY SUE_EMP ASC;

MOSTRAR EL NOMBRE, APELLIDO, CARGO Y SUELDO DE LOS EMPLEADOS CUYO NOMBRE EMPIECE
CON LA LETRA M Y CUYO APELLIDO TERMINE CON LA LETRA R Y QUE GANE MAS QUE EL
EMPLEADO CON CEDULA 1801, PERO MENOS QUE EL EMPLEADO CON CEDULA 1809, Y QUE NO VIVA
EN LA MISMA DIRECCION DEL EMPLEADO CON CEDULA 1805.

SELECT NOM_EMP, APE_EMP, CAR_EMP


FROM EMPLEADOS
WHERE NOM_EMP LIKE 'M%' AND APE_EMP=%R AND SUE_EMP> (SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1801' )
AND SUE_EMP <(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1809')
AND DIR_EMP <> (SELECT DIR_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805');

MOSTRAR EL NOMBRE, PISO DE UBICACION Y CANTIDAD DE OFICINAS DEL DEPARTAMENTO AL QUE


PERTENECE EL EMPLEADO QUE GANA MAS QUE EL EMPLEADO CON CED=1806
SELECT NOM_DEP, PIS_UBI_DEP
FROM DEPARTAMENTOS
WHERE COD_DEP IN (SELECT COD_DEP
FROM EMPLEADOS
WHERE SUE_EMP > (SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1806'));

Mostrar el nombre, apellido y celular del etdiante que tiene en la segunda


posici{on del apellido la letra E en la cuarta pos del ape la letra E y termine en
Z

SELECT NOM_EST, APE_EST, CEL_EST


FROM ESTUDIANTES
WHERE APE_EST LIKE' _E_E%Z';

Mostrar el apellido, la funci�n, sala o departamento de todos los empleados que


trabajen en la empresa.SELECT
SELECT * FROM EMPLEADOS

Queremos saber el apellido, oficio, salario y n�mero de departamento de los


empleados con salario mayor que el mejor salario del departamento 30
SELECT APE_EMP, OFI_EMP
FROM DEPARTAMENTOS
WHERE COD_DEP IN (SELECT COD_DEP
FROM EMPLEADOS
WHERE SAL_EMP> (SELECT SA_EMP
FROM EMPLEADOS
WHERE SAL_EMP =(SELECT SAL_EMP
FROM DEPARTAMENTOS
COD_DEP='30')));

Visualizar el apellido y el oficio de los empleados con el mismo oficio que


Jim�nez.
SELECT APE_EMP, OFI_EMP
FROM EMPLEADOS
WHERE OFI_EMP='Jimenez';

Mostrar el n�mero de empleado, el apellido y la fecha de alta del empleado mas


antiguo de la empresa
SELECT NUM_EMP, APE_EMP, (SYSDATE-FEC_ING_EMP)/365 ANTIGUEDAD
FROM EMPLEADOS
WHERE (SYSDATE-FEC_ING_EMP)/365;

Obtener todos los empleados que tienen el mismo oficio que �Alonso�.

SELECT * FROM EMPLEADOS


WHERE OFI_EMP =(SELECT OFI_EMP
FROM EMPLEADOS
WHERE APE_EMP='Alonso');

.Visualizar la suma de los salarios para cada oficio de los empleados del
departamento de VENTAS.
SELECT SAL_EMP , SUM(SAL_EMP) SUMA_SALARIOS
FROM EMPLEAODS
WHERE COD_DEP = (SELECT COD_DEP
FROM DEPARTAMENTOS
WHERE COD_DEP_VEN ='VENTAS'
ORDER BY OFI_EMP);

Listar, en orden alfab�tico, aquellos empleados que no trabajen ni en Madrid ni en


Barcelona

SELECT * FROM EMPLEADOS


WHERE DIR_EMP <> (SELECT DIR_EMP
FROM EMPLEADOS
WHERE DIR_EMP ='MADRIR' AND DIR_EMP='BARCELONA');

Listar los nombres de los departamentos que tengan alg�n empleado con fecha de
alta anterior a 1982.
SELECT NOM_EMP
FROM DEPARTAMENTOS
WHERE FEC_ALTA_EMP < '01/01/82';
Mostrar nombre, apellido, direccion, sueldo, edad, antiguedad, comision, sueldo
anual, comision semestral y grupo etnico de los empleados
que tenga una letra 'C' en cualquier parte de su nombre y cuyo apellido empiece con
la letra 'R' y no termine con una letra 'O' y
que no viva ni en Ambato ni en Puyo ni en Quito y que ganen m�s de 700 y que no
pertenezca el grupo etnico indigena
pero si pertenezca al grupo etnico mestizo y su edad este entre 30 y 35 a�os.

SELECT NOM_EMP, APE_EMP, DIR_EMP, SUE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD,


(SYSDATE-FEC_ING_EMP)/365 ANTIGUEDAD, COMI_EMP, SUE_ANU, COMI_SEMES_EMP,
GRUP_ETN_EMP
FROM EMPLEADOS
WHERE NOM_EMP LIKE '%C%' AND APE_EMP LIKE 'R%'AND NOT APE_EMP LIKE '%O' AND
DIR_EMP NOT IN ('AMBATO', 'PUYO' , 'QUITO') AND SUE_EMP >700 AND NOT
GRUP_ETN_EMP='INDIGENA' AND GRUP_ETN_EMP='MESTIZO' AND (SYSDATE-FEC_NAC_EMP)/365
BETWEEN (30 AND 35)

Mostrar nombre, apellido, direccion, sueldo, edad, sueldo anual, antiguedad, GEN y
grupo etnico de los empleados
cuyo nombre comience con la letra 'P' y cuyo apellido tenga la letra 'A' en su
cadena y termine con una letra 'Z' y
que no viva en Cuenca ni Puyo ni Loja ni Quito y que ganen de comision entre 10 a
20 dolares y que no tenga supervisor y que sea de sexo masculino
y que sea gerente pero que no pertenezca al grupo etnico blanco ni indigena ni
afroecuatoriano ni montubio

SELECT NOM_EMP, APE_EMP, DIR_EMP, SUE_EMP, (SYSDATE-FEC_NAC_EMP)/365 EDAD,


(SYSDATE-FEC_ING_EMP)/365 ANTIGUEDAD, GEN_EMP, GRUP_ETN_EMP
FROM EMPLEADOS
WHERE NOM_EMP LIKE 'P%' AND APE_EMP LIKE '%A%Z' AND DIR_EMP NOT
IN('CUENCA','PUYO','LOJA','QUITO') AND COMI_EMP BETWEEN (10 AND 20) AND NOT
SUPERVISOR, AND GEN_EMP='MASCULINO' AND CAR_EMP='GERENTE' AND GRUP_ETN_EMP NOT IN
('BLANCO','INDIGENA','AFROECUATORIANO','MONTUBIO');

Mostrar el codigo, nombre, piso de ubicacion al que pertenece el empleado que viajo
con el motivo paseo
a la ciudad con el nombre Salinas.
SELECT COD_DEP, NOM_DEP, PIS_UBI_DEP
FROM DEPARTAMENTOS
WHERE COD_DEP =(SELECT COD_DEP
FROM EMPLEADOS
WHERE CED_EMP= (SELECT CED_EMP
FROM VIAJES
WHERE MOT_VIAJE='PASEO')
AND COD_CIU =(SELECT COD_CIU
FROM CIUDADES
WHERE NOM_CIU='SALINAS'));

-----------------------------------------------------------
SELECT CED_EST, APE_EST, NVL(PROM_EST,0), PROM_EST*0.10 PROMEDIO_REVISADO,
(SYSDATE-FEC_NAC_EST)/365 EDAD
FROM ESTUDIANTES
WHERE NOT FEC_ING_EST BETWEEN('01/01/2014'AND 01/01/2015)
AND EST_CIVIL<>(SELECT EST_CIVIL
FROM ESTUDIANTES
WHERE CED_EST='1805' AND TEL_EST IS NULL);
--------------------------------------------------------------------------

SELECT NOM_EST, APE_EST, PROM_EST, (SYSDATE-FEC_NAC_EST)/365 EDAD


FROM ESTUDIANTES
WHERE EST_CIVIL='C' AND GEN_EST='MUJER' AND PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE CED_EST='1801')
AND PROM_EST<(SELECT PROM_EST
FROM ESTUDIANTES
WHERE CED_EST='1803')
AND (SYSDATE-FEC_NAC_EST)/365 <(SELECT (SYSDATE-FEC_NAC_EST)/365
FROM ESTUDIANTES
WHERE CED_EST='1805');
----------------------------------------------------------------------------

SELECT APE_EST, DIR_EST, NVL(PROM_EST,0), (SYSDATE-FEC_ING_EST)/365 ANTIGUEDAD


FROM ESTUDIANTES
WHERE APE_EST LIKE'A%' APE_EST LIKE '_M%' AND APE_EST LOKE '%Z'
AND PROM_EST < ALL(SELECT PROM_EST
FROM ESTUDIANTES
WHERE NOM_EST LIKE 'A%' )
AND (SYSDATE-FEC_ING_EST)/365 =(SELECT (SYSDATE-FEC_ING_EST)/365
FROM ESTUDIANTES
WHERE (SYSDATE-FEC_ING_EST)/365=6);

------------------------------------------------
SELECT COD_LIB, NOM_LIB, AUT_LIB
FROM LIBROS
WHERE COD_LIB NOT IN(SELECT COD_LIB
FROM PRESTAMOS
WHERE FEC_PRES_LIB ='01/12/2016' );

SELECT NOM_EST, APE_EST, E-MAIL_EST,


FROM ESTUDIANTES
WHERE COD_LIB =(SELECT COD_LIB
FROM PRESTAMOS
WHERE NOM_EST LIKE '%JAVA' AND NOM_BIB LIKE '%X%');

-----------------------------------------------------------------------------------
---------

MOSTRAR LA DIRECCION EN DONDE VIVE EL MAYOR NUMERO DE ESTUDIANTES.

SELECT DIR_EST
FROM ESTUDIANTES
GROUP DIR_EST
HAVING COUNT(COD_EST)=(SELECT MAX(COUNT(COD_EST))
FROM ESTUDIANTES
GROUP BY DIR_EST);

-----------------------------------------------------------------------------------
----------------------

MOSTRAR UN REPORTE CON EL NUMERO DE ESTUDIANTES QUE EXISTEN EN CADA SEMESTRE


SELECT COUNT(EST), COD_CUR_PER
FROM ESTUDIANTES
GROUP BY COD_CUR_PER;

Mostrar el siguiente reporte:


Cod_Ofi_per Cant_Empleados
OFI1 3
OFI2 4
OFI3 4

SELECT COD_OFI_PER, COUNT(CED_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER;

------------------------------------------------------------

MOSTRAR EL SIGUIENTE REPORTE


Cod_Ofi_per Cant_SECRETARIAS
OFI1 1
OFI2 2
OFI3 1

SELECT COD_OFI_PER, COUNT(CED_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
GROUP BY COD_OFI_PER;

-----------------------------------------------------------------------------------
-------------------

MOSTRAR CUANTO SE DEBE P�GAR EN SUELDOS EN CADA OFICINA.

SELECT SUM(SUE_EMP), COD_OFI_PER


FROM OFICINAS
GROUP BY COD_OFI_PER;

-----------------------------------------------------------------------------------
---------

MOSTRAR LOS SUELDOS QUE SE DEBEN PAGAR AGRUPADOS POR OFICINA, PERO SOLO MOSTRAR EN
EL RPORTE LA SUMAS MAYORES A 3000.

SELECT SUM(SUE_EMP), COD_OFI_PER


FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)>3000;

-----------------------------------------------------------------------------------
-----------------------------

MOSTRAR EL SUELDO PROMEDIO QUE SE PAGA EN CADA OFICINA A LOS EMPLEADOS QUE NO
TENGAN EL CARGO DE GERENTE, PERO MOSTRAR SOLO LOS SUELDOS PROMEDIOS MAYORES A 1000.

SELECT AVG(SUE_PROM), COD_OFI_PER


FROM EMPLEADOS
WHERE CAR_EMP <>'GERENTE'
GROUP BY COD_OFI_PER
HAVING AVG(SUE_PROM)>1000;
-----------------------------------------------------------------------------------
---------------------------------------------------
MOSTRAR EL NOMBRE Y APELLIDO DEL EMPLEADO QUE GANA MAS QUE EL EMPLEADO CON CEDULA
1801, PERO MENOS QUE EL EMPLEADO CON CEDULA 1803 Y QUE NO VIVE EN LA MISMA
DIRECCION QUE EL EMPLEADO QUE TIENE UNA LETRA A EN LA 2DA POSICION DEL NOMBRE, PERO
NO TIENE UNA LETRA W AL INICIO DEL APELLIDO, Y QUE TRABAJA EN LA MISMA OFICINA QUE
LA SECRETARIA QUE TIENE MAS DE 30 A�OS.

SELECT NOM_EMP, APE_EMP


FROM ESTUDIANTES
WHERE SUE_EMP >(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1801')
AND SUE_EMP<(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1803')
AND NOT DIR_EMP=(SELECT DIR_EMP
FROM EMPELADOS
WHERE NOM_EMP LIKE '_A'
AND NOT APE_EMP LIKE 'W%')
AND COD_OFI_PER=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
AND (SYSDATE-FEC_NAC_EMP)/365>30);

Mostrar cuantos empleados existen en la empresa y cuantos empleados ganan mas que
el sueldo promedio.

SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE SUE_EMP>(SELECT AVG(SUE_EMP)
FROM EMPLEADOS
);

-----------------------------------------------------------------------------------
--------------------
Mostrar el nombre, apellido y sueldo del contador mas joven
SELECT NOM_EMP, APE_EMP
FROM EMPLEADOS
WHERE (SYSDATE-FEC_NAC_EMP)/365= (SELECT MIN(SYSDATE-FEC_NAC_EMP)/365)
FROM EMPLEADO
CAR_EMP='CONTADOR');

Mostrar cuanto de dinero se debe pagar en sueldos en la oficina DE VENTAS

SELECT SUE_EMP
FROM EMPLEADOS
WHERE COD_OFI_PER=(SELECT COD_OFI_PER
FROM OFICINAS
WHERE NOM_OFI='VENTAS');

---------------------------------------------------------------------

Mostrar la sumatoria de los sueldos y las comisiones de las secretarias.


SELECT SUM(SUEL_EMP),
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA';

---------------------------------------------
Mostrar la edad mas baja de los empleados

SELECT MIN((SYSDATE-FEC_NAC_EMP)/365)
FROM EMPLEADOS;

---------------------------------------------------------------------
Mostrar la fecha de ingreso mas antigua de los empleados
SELECT MIN ((SYSDATE-FEC_ING_EMP)/365)
FROM EMPLEADOS;

---------------------------------------------------------------------
Mostrar el nombre y apellido del empleado con sueldo m�s bajo.
SELECT NOM_EMP, APE_EMP
FROM EMPLELADOS;
WHERE SUE_EMP=(SELECT MIN(SUE_EMP)
FROM EMPLEADOS);

-----------------------------------------------------------------------------------
---------

Mostrar el nombre, apellido y cargo del empleado que tiene la comision m�s alta.

SELECT NOM_EMP, APE_EMP, CAR_EMP


FROM EMPLEADOS
WHERE COMI_EMP= (SELECT MAX(COMI_EMP)
FROM EMPLEADOS);
--------------------------------------------------------------------------------
Mostrar el nombre, apellido y DTR del ESTUDIANTE que tiene EL PROMEDIO MAS ALTO.
SELECT NOM_EST, APE_EST, DIR_EST
FROM ESTUDIANTES
WHERE PROM_EST=(SELECT MAX(PROM_EST)
FROM_ESTUDIANTES);

Mostrar el nombre, apellido y DTR del ESTUDIANTE que tiene EL PROMEDIO MAS ALTO
cuyo nombre tenga una letra E EN LA CUARTA POSICION
SELECT NOM_EST, APE_EST, DIR_EST
FROM EMPLEADOS
WHERE PROM_EST=(SELECT MAX(PROM_EST)
FROM ESTUDIANTES
WHERE NOM_EST LIKE '_E';
-----------------------------------------------------------------------------------
--------

Mostrar el nombre, apellido y sueldo del contador mas joven


SELECT NOM_EMP, APE_EMP, SUE_EMP
FROM EMPLEADOS
WHERE (SYSDATE-FEC_NAC_EMP)/365=(SELECT MIN((SYSDATE-FEC_EMP)/365)
FROM EMPLEADOS);
CAR_EMP='CONTADOR';

-----------------------------------------------------------------------------------
-----------------

Mostrar el nombre y apellido de la secretaria con mayor sueldo.


SELECT NOM_EMP, APE_EMP
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA');
-----------------------------------------------------------------------------------
------------------

Mostrar cuantos conserjes trabajan en la empresa.


SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONSERJE';
-----------------------------------------------------------------------------------
-
Mostrar cuantos empleados ganan menos de 1000$

SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE SUE_EMP<1000;
-----------------------------------------------------------------------------------
---

Mostrar cuantos empleados pasan de los 30 a�os de edad.


SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE (SYSDATE-FEC_NAC_EMP)/365>30;

-----------------------------------------------------------------------------------
-----------

Mostrar la sumatoria de los sueldos de los empleados.

SELECT SUM(SUE_EMP)
FROM EMPLEADOS;
-----------------------------------------------------------------------------------
----------------

Mostrar la sumatoria de los sueldos de las secretarias.


SELECT SUM(SUE_EMP)
FROM EMPLEADOS
CAR_EMP='SECRETARIA';

-----------------------------------------------------------------------------------
-----------------

Mostrar el sueldo promedio de los empleados de la empresa.


SELECT AVG(SUE_EMP)
FROM EMPLEADOS;

--------------------------------------------------------------
MOSTRAR el sueldo promedio de los concerjes de la empresa.
SELECT AVG(SUE_EMP)
FROM EMPLEADOS
CAR_EMP='CONSERJE';
---------------------------------------------------------------------------

Mostrar cuantos empleados existen en la empresa y cuantos empleados ganan mas que
el sueldo promedio.
SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE SUE_EMP>(SELECT AVG(SUE_EMP)
FROM EMPLEADOS);

-----------------------------------------------------------------------------------
---
Mostrar cuanto de dinero se debe pagar en sueldos en la oficina con el nombre
VENTAS.
SELECT SUM(SUE_EMP)
FROM OFICINAS
WHERE COD_OFI_PER=(SELECT COD_OFI
FROM OFICINA
NOM_OFI='VENTAS')

-----------------------------------------------------------------------------------
--------
Mostrar cuanto se debe pagar en contadores en la ficina OFI4
SELECT SUM(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
AND COD_OFI_PER=(SELECT COD_OFI
FROM OFICINAS
WHERE COD_OFI=OFI4);

Mostrar cuanto se debe pagar en SECRETARIAS en la ficina OFI5

SELECT SUM(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
AND COD_OFI_PER=(SELECT COD_OFI
FROM OFICINAS
WHERE COD_OFI=OFI5);

-----------------------------------------------------------------------------
Mostrar cuanto de dinero se debe pagar en sueldos en la oficina con el nombre
COMPRAS

SELECT SUM(SUE_EMP)
FROM EMPLEADOS
WHERE COD_OFI_PER=(SELECT COD_OFI_PER
FROM OFICINAS
NOM_OFI='COMPRAS')
-----------------------------------------------------------------------------------
-----
Mostrar EL SUELDO PROMEDIO DE LAS SECRETARIAS en la ficina OFI5
SELECT AVG(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
AND COD_OFI_PER=(SELECT COD_OFI
FROM OFICINAS
WHERE COD_OFI='OFI5');
-----------------------------------------------------------------------------------
----
Mostrar los valores que se deben pagar en sueldos clasificados por oficina.
LA SUMA DE LOS SUELDOS QUE SE PAGARAN AGRUPADOS POR OFICINA
COD_OFI VALORES
OFI1 6700
OFI2 5430
OFI3 7490
SELECT COD_OFI_PER, SUM(SUE_EMP)
FROM EMPLEADOS
GROUP BY COD_OFI_PER;
---------------------------------------------------------------------

Mostrar el sueldo promedio que se paga en las oficinas agrupando por oficina.

SELECT COD_OFI_PER, AVG(SUE_EMP),


FROM EMPLEADOS
GROUP BY COD_OFI_PER;
---------------------------------------------------
Mostrar la suma de los sueldos que se pagan solo a las secretarias agrupando
por oficina

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
GROUP BY COD_OFI_PER;
-----------------------------------------------------------------------------------
-----------

Mostrar el sueldo promedio mayor a 1500,agrupados por la oficina.

SELECT COD_OFI_PER,AVG(SUE_EMP)
FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)>1500;
-----------------------------------------------------------------------------------
----
Mostrar CUANTO se deBE pagar EN SUELDOS mayor a 2500,agrupados por la oficina.
SELECT COD_OFI_PER,SUM(SUE_EMP)
FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)>2600;

-----------------------------------------------------------------------....
Mostrar el codigo de la oficina y la suma de los sueldos, de la oficina en la que
se paga
la suma mas alta en sueldos.

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)=(SELECT MAX(SUM(SUE_EMP))
FROM EMPLEADOS
GROUP BY COD_OFI_PER);
-----------------------------------------------------------

Mostrar el codigo de la oficina Y EL PROMEDIO de los sueldos, de la oficina en la


que se paga
EL PROMEDIO mas altO en sueldos.

SELECT COD_OFI_PER, AVG(SUE_EMP)


FROM EMPLEADOS
GROUP COD_OFI_PER
HAVING AVG(SUE_EMP)=(SELECT MAX(AVG(SUE_EMP))
FROM EMPLEADOS
GROUP BY COD_OFI_PER);

------------------------------------------------------------------
Mostrar el codigo de la oficina Y CUANTO SE HA PAGADO EN sueldos, de la oficina en
la que se paga
EL VALOR mas BAJO en sueldos.

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)=(SELECT MIN(SUM(SUE_EMP))
FROM EMPLEADOS
GROUP BY COD_OFI_PER);
-----------------------------------------------------

Mostrar el codigo de la oficina Y EL PROMEDIO de los sueldos, DE CADA oficina en


la que se paga
EL PROMEDIO MAS BAJO en sueldos.

SELECT COD_OFI_PER, AVG(SUE_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)=(SELECT MIN(AVG(SUE_EMP))
FROM EMPLEADOS
GROUP BY COD_OFI_PER);

--------------------------------------------------------------------------------

Mostrar el numero y la suma de los sueldos que se paga a los empleados que tienen
el cargo
de CONTADORES agrupados por oficina.

COD_OFI_PER CANT SUM(SUE_PER)


OFI1 2 3000
OFI2 1 1600

SELECT COD_OFI_PER, CAN_SUE, SUM(SUE_PER)


FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
GROUP BY COD_OFI_PER;
-----------------------------------------------------
Mostrar el numero DE EMPLEADOS y EL PROMEDIO de los sueldos que se paga a los
empleados que tienen el cargo
de CONTADORES agrupados por oficina.

SELECT COD_OFI_PER, COUNT(CED_EMP), AVG(SUE_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
GROUP BY COD_OFI_PER;

-----------------------------------------------------------------------------------
---------
Mostrar el numero DE EMPLEADOS y EL PROMEDIO de los sueldos que se paga a los
empleados que tienen el cargo
de CONTADORES agrupados por oficina.
Ejecutar la misma consulta anterior pero solo desplegar en el resultado las
oficinas que tengan mas
de un contador.
SELECT COD_OFI_PER, COUNT(CED_EMP), AVG(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
GROUP BY COD_OFI_PER
HAVING COUNT(CED_EMP)>1;

-------------------------------------------------------------------

Mostrar el numero DE EMPLEADOS y SUMA de los sueldos que se paga a los empleados
que tienen el cargo
de CONTADORES agrupados por oficina.
Ejecutar la misma consulta anterior pero solo desplegar en el resultado las
oficinas que tengan mas
de un contador.

SELECT COD_OFI_PER, COUNT(CED_EMP), SUM(SUE_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
GROUP BY COD_OFI_PER
HAVING COUNT(CED_EMP)>1;
---------------------------------------------------------

Ejercicio: Mostrar el codigo, el nombre y piso de ubicacion de la oficina que paga


mas de 2000 en sueldos
de secretarias.

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI_OFI


FROM OFININAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS

WHERE CAR_EMP='SECRETARIA'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP>2000));
-----------------------------------------------------------------------------------
-------------

Mostrar el codigo, el nombre y piso de ubicacion de la oficina que paga mas de


1000 en sueldos
de LOS GERENTES

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI


FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CAR_EMP='GERENTE'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP>1000));
-----------------------------------------------------------------------------------
----------------------------
Mostrar el codigo, el nombre y piso de ubicacion de la oficina que paga 1000 en
sueldos
de LOS GERENTES

SELECT COD_OFI_PER, NOM_OFI


FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CAR_EMP='GERENTE'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP) =1000);

-----------------------------------------------------------------------------

Mostrar el codigo, el nombre y piso de ubicacion de la oficina que paga MENOS DE


1000 en sueldos
de LAS SECRETARIAS

SELECT COD_OFI_PER, NOM_OFI


FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIAS'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)<1000);

-----------------------------------------------------------------------------------
---
Mostrar el codigo, el nombre y piso de ubicacion de la oficina en la que trabaje el
empleado
con el mayor sueldo de todos.

SELECT COD_OFI_PER, NOM_OFI


FROM OFICINAS
WHERE COD_OFI IN (SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS));

-----------------------------------------------------------------------------------
------------
Mostrar el codigo, el nombre y piso de ubicacion de la oficina en la que NO trabaje
el empleado
con el mayor sueldo de todos.

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI


FROM OFICINAS
WHERE COD_OFI NOT IN (SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP =(SELECT MAX(SUE_EMP)
FROM EMPLEADOS));

-----------------------------------------------------------------------------------
--------------------------------

Mostrar el codigo, el nombre y piso de ubicacion de la oficina en la que trabaje


el empleado
con el MENOR sueldo de todos.

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI_OFI


FROM OFICINAS
WHERE COD_OFI IN (SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MIN(SUE_EMP)
FROM EMPLEADOS));
-----------------------------------------------------------------------------------
-----
Mostrar el codigo, el nombre y piso de ubicacion de la oficina en la que NO trabaje
el empleado
con el MAYOR SUELDO Q DEL EMPLEADO CON CEDULA 1803.

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI


FROM OFICINAS
WHERE COD_OFI NOT IN (SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS
WHERE CED_EMP='1803'));

----------------------------------------------------------------------------------
Mostrar el codigo, el nombre y piso de ubicacion de la oficina que paga 1000 en
sueldos
de LOS CONSERJES

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI_OFI


FROM OFICINAS
WHERE COD_OFI =(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CAR_EMP='CONSERJES'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)>1000);

------------------------------------------------------------------

Mostrar el nombre, apellido, sueldo del contador mejor pagado de la OFI4

SELECT NOM_EMP, APE_EMP


FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
AND COD_OFI_PER='OFI4');

...................................................................................
.........................

Mostrar el nombre, apellido, sueldo DE LA SECRETARIA mejor pagadA de la OFI10

SELECT NOM_EMP, APE_EMP, SUE_EMP


FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
AND COD_OFI_PER='OFI10');

-----------------------------------------------------------------------------------
---------------------------

Mostrar el codigo, el nombre y piso de ubicacion de la oficina en la que trabaje


el empleado
con el MAYOR sueldo de todos.

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI


FROM OFICINAS
WHERE COD_OFI IN (SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS));
-----------------------------------------------------------------------------------
-------------------
Mostrar el nombre, apellido, sueldo del contador mejor pagado de la OFI4

SELECT NOM_EMP, APE_EMP, SUE_EMP


FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS
CAR_EMP='CONTADOR'
AND COD_OFI_PER='OFI4');

------------------------------------------------------------------------
Mostrar cuantos empleados no ganan mas que el sueldo promedio.
SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE SUE_EMP <> (SELECT AVG(SUE_EMP)
FROM EMPLEADOS);

--------------------------------------------------------------------------

Mostrar el codigo, el nombre y piso de ubicacion de la oficina que paga MAS DE 1000
en sueldos
de LOS CONSERJES

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI


FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CAR_EMP='CONSERJES'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)>1000);

-----------------------------------------------------------------------------------

Mostrar el sueldo promedio que se paga por oficina, pero para el calculo del sueldo
promedio
filtrar solo a los empleados que ganen mas de 800 $, y mostrar en el reporte final
solo los seldos promedio
mayoreS a 1500 $.

SELECT COD_OFI_PER, AVG(SUE_EMP),


FROM EMPLEADOS
WHERE SUE_EMP>800
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)>1500;

-----------------------------------------------------------------------------------
----------------

Mostrar el sueldo promedio que se paga por oficina, pero para el calculo del sueldo
promedio
filtrar solo a los empleados que NO ganen mas de 1000 $, y mostrar en el reporte
final solo los seldos promedio
mayoreS a 2500 $.

SELECT COD_OFI_PER, AVG(SUE_EMP)


FROM EMPLEADOS
WHERE NOT (SUE_EMP>1000)
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)>2500;

----------------------------------------------------------------------------------
MOSTRAR LA CEDULA, NOMBRE Y APELLIDO DEL EMPLEADO CUYA COMISION SEA LA MENOR DE LOS
CONSERJES.
SELECT CED_EMP, NOM_EMP, APE_EMP
FROM EMPLEADOS
WHERE COMI_EMP=(SELECT MIN(COMI_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONSERJE' );

MOSTRAR EL CODIGO Y NOMBRE DE LA OFICINA UBICADA EN EL PISO MAS BAJO.

SELECT COD_OFI_PER, NOM_OFI


FROM OFICINAS
WHERE PIS_UBI=(SELECT MIN(PIS_UBI)
FROM OFICINAS);

--------------------------------------------------------------------------------

MOSTRAR EL CODIGO Y NOMBRE DE LA OFICINA UBICADA EN EL PISO MAS ALTO

SELECT COD_OFI_PER, NOM_OFI


FROM OFICINAS
WHERE PIS_UBI =(SELECT MAX(PIS_UBI)
FROM OFICINAS);

----------------------------------------------------------------------

MOSTRAR EL SUELDO PROMEDIO DE TODOS LOS CONSERJES.


SELECT AVG(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONSERJES';
-----------------------------------------------------

MOSTRAR LA SUMA DE LOS SUELDOS Y COMISIONES DE LOS EMPLEADOS QUE TRABAJAN EN OFI3
SELECT SUM(SUE_EMP), SUM(COMI_EMP)
FROM EMPLEADOS
WHERE COD_OFI_PER='OFI3';

---------------------------------------------------------------
MOSTRAR LA SUMA DE LOS SUELDOS DE LOS EMPLEADOS QUE SON SECRETARIAS Y CONSERJES
SELECT SUM(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIAS'
OR CAR_EMP='CONSERJES';

---------------------------------------------------------------
MOSTRAR CUANTOS EMPLEADOS TRABAJAN M�S DE 5 A�OS DE ANTIGUEDAD.

SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE (SYSDATE-FEC_ING_EMP)/365>5;

-------------------------------------------------------------------------

MOSTRAR EL SUELDO PROMEDIO DE LOS EMPLEADOS AGRUPADOS POR SU CARGO


SELECT CAR_EMP, AVG(SUE_EMP),
FROM EMPLEADOS
GROUP BY CAR_EMP;
-----------------------------------------------------------------------

MOSTRAR CUANTO EMPLEADOS GANAN MAS DE $800 AGRUPADOS POR OFICINAS

SELECT COD_OFI_PER, COUNT(CED_EMP)


FROM EMPLEADOS
WHERE SUE_EMP>800
GROUP BY COD_OFI_PER;
------------------------------------------------------------------------

MOSTRAR LA SUMA DE LOS SUELDOS DE LOS EMPLEADOS QUE SON PUBLICISTAS


AGRUPADOS POR OFICINA

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='PUBLICISTAS'
GROUP BY COD_OFI_PER;

--------------------------------------------------------------------

MOSTRAR CUANTOS EMPLEADOS GANAN MAS DE $800 AGRUPADOS POR OFICINAS, CUYO SUMA DE
SUELDOS SEA MAYOR A $5000.

SELECT COD_OFI_PER, COUNT(CED_EMP), SUM(SUE_EMP)


FROM EMPLEADOS
WHERE SUE_EMP>800
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)>5000;

----------------------------------------------------------------------------
MOSTRAR LA SUMA DE LOS SUELDOS DE LOS EMPLEADOS QUE SON PUBLICISTAS AGRUPADOS POR
OFICINA, CUYA SUMA DE COMISIONES SEA MAYOR A $100.

SELECT COD_OFI_PER, SUM(SUE_EMP), SUM(COMI_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='PUBLICISTAS'
GROUP BY COD_OFI_PER
HAVING SUM(COMI_EMP)>100;

---------------------------------------------------------------------------------

MOSTRAR EL SUELDO PROMEDIO MAYOR A $1800 DE LOS EMPLEADOS AGRUPADOS POR SU CARGO.
SELECT CAR_EMP, AVG(SUE_EMP)
FROM EMPLEADOS
GROUP BY CAR_EMP
HAVING AVG(SUE_EMP)>1800;
---------------------------------------------------------------------------

MOSTRAR LA SUMA DEL SUELDO MAYOR A $1800 DE LOS EMPLEADOS AGRUPADOS POR SU CARGO.
SELECT CAR_EMP, SUM(SUE_EMP)
FROM EMPLEADOS
GROUP BY CAR_EMP
HAVING SUM(SUE_EMP)>1800;

-----------------------------------------------------------------------------------
--------

MOSTRAR LA SUMA DE LOS SUELDOS DE LOS EMPLEADOS QUE SON PUBLICISTAS AGRUPADOS POR
OFICINA, CUYA SUMA DE COMISIONES SEA MAYOR A $20, Y ORDENAR DESCENDENTEMENTE POR
LAS OFICINAS.

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
WHERE CAR_EMP='PUBLICISTA'
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)>20
ORDER BY COD_OFI DESC;

-----------------------------------------------------------------------------------
-------

MOSTRAR EL SUELDO PROMEDIO MAYOR A $1800 DE LOS EMPLEADOS AGRUPADOS POR SU CARGO Y
ORDENADO POR EL PROMEDIO DEL SUELDO DESCENDENTEMENTE.

SELECT CAR_EMP, AVG(SUE_EMP)


FROM EMPLEADOS
GROUP BY CAR_EMP
HAVING AVG(SUE_EMP)>1800
ORDER BY AVG(SUE_EMP) DESC;
-----------------------------------------------------------------------------

MOSTRAR EL NOMBRE APELLIDO Y CARGO DEL EMPLEADO QUE TIENE LA COMISION MAS ALTA.

SELECT NOM_EMP, APE_EMP, CAR_EMP


FROM EMPLEADO
WHERE COMI_EMP=(SELECT MAX(COMI_EMP)
FROM EMPLEADOS);
-------------------------
MAS ANTIGUO= MIN
MAS JOVEN=MIN
SOLO PARA FECHAS
-------------------------------------------------------------

MOSTRAR EL NOMBRE APELLIDO Y SUELDO DEL CONTADOR MAS JOVEN

SELECT NOM_EMP, APE_EMP


FROM EMPLEADOS
WHERE (SYDATE-FEC_NAC_EMP)/365=(SELECT (MIN(SYDATE-FEC_NAC_EMP)/365)
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR');

--------------------------------------------------------------------------------
MOSTRAR CUANTOS EMPLEADOS PASAN DE LOS 30 A�OS DE EDAD
SELECT COUNT(CED_EMP)
FROM EMPLEADOS
WHERE (SYDATE-FEC_NAC-EMP)/365>30;
-----------------------------------------------

MOSTRAR LA SUMATORIA DE LOS SUELDOS DE LAS SECRES


SELECT SUM(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA';
-------------------------------------------------------------------

MOSTRAR CUANTOS EMPLEADOS EXISTEN EN LA EMPRESA Y CUANTOS EMPLEADOS GANAN MAS QUE
EL SUELDO PROMEDIO

SELECT COUNT(CED_EMP),
FROM EMPLEADOS
WHERE SUE_EMP>(SELECT AVG(SUE_EMP)
FROM EMPLEADOS);

----------------------------------------------

MOSTRAR CUANTO DINERO SE DEBE PAGAR EN SUELDOS EN LA OFICINA CON EL NOMBRE 'VENTAS'
SELECT SUM(SUE_EMP)
FROM EMPLEADOS
WHERE COD_OFI_PER=(SELECT COD_OFI
FROM EMPLEADOS
WHERE NOM_OFI='VENTAS');

-----------------------------------------------------------------------------------
---------------

Mostrar los valores que se deben pagar en sueldos clasificados por oficina.
LA SUMA DE LOS SUELDOS QUE SE PAGARAN AGRUPADOS POR OFICINA.

COD_OFI VALORES
OFI1 6700
OFI2 5430
OFI3 7490

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER;
-----------------------------------------------------------------------

MOSTRAR EL SUELDO PROMEDIO QUE SE PAGA EN LAS OFICINAS AGRUPANDO POR OFICINA
SELECT COD_OFI_PER, AVG(SUE_EMP)
FROM EMPLEADOS
GROUP BY COD_CUR_PER;

----------------------------------------------------------------
MOSTRAR LA SUMA DE LOS SUELDOS QUE SE PAGAN SOLO A LAS SECRETARIAS AGRUPANDO POR
OFICINA.
SELECT COD_OFI_PER, SUM(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
GROUP BY COD_OFI_PER;
-------------------------------------------------------------------------

Mostrar el sueldo promedio mayor a 1500 agrupado por la oficina


SELECT COD_OFI_PER, AVG(SUE_EMP)
FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)>1500;

-------------------------------------------
Mostrar el codigo de la oficina y las suma de los sueldos de la oficina en la que
se paga la suma mas alta en sueldos

SELECT COD_OFI_PER, SUM(SUE_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING SUM(SUE_EMP)=(SELECT MAX(SUM(SUE_EMP))
FROM EMPLEADOS
GROUP BY COD_OFI_PER);

-------------------------------------------------------
Mostrar el codigo de la oficina y PROMEDIO de los sueldos de la oficina en la que
se paga EL PROMEDIO mas alta en sueldos

SELECT COD_OFI_PER, AVG(SUE_EMP)


FROM EMPLEADOS
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)=(SELECT MAX(AVG(SUE_EMP))
FROM EMPLEADOS
GROUP BY COD_OFI_PER);

-----------------------------------------------------------------------------------
--

MOSTRAR EL NUMERO DE EMPLEADOS Y LA SUMA DE LOS SUELDOS QUE SE PAGA A LOS EMPLEADOS
QUE TIENEN EL CARGO DE CONTADORES AGRUPADOS POR OFICINA.
SELECT COD_OFI_PER, COUNT(CED_EMP), SUM(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
GROUP BY COD_OFI_PER;

-------------------------------------------------------------

MOSTRAR EL CODIGO EL NOMBRE Y EL PISO DE UBICACION DE LA OFICINA EN LA QUE TRABAJA


EL EMPLEADO CON EL MAYOR SUELDO DE TODOS
SELECT COD_OFI_PER, NOM_OFI, PIS_UBI_OFI
FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS));

-----------------------------------------------------------------------------------
----------------------------
MOSTRAR EL CODIGO EL NOMBRE Y EL PISO DE UBICACION DE LA OFICINA EN LA QUE TRABAJA
EL EMPLEADO CON EL MENOR SUELDO DE TODOS

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI_OFI


FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MIN(SUE_EMP)
FROM EMPLEADOS));

--------------------------------------------------------------------------
MOSTRAR EL CODIGO EL NOMBRE Y EL PISO DE UBICACION DE LA OFICINA EN LA QUE TRABAJA
EL EMPLEADO CON MAYOR EDAD DE TODOS

SELECT COD_OFI_PER, NOM_OFI, PIS_UBI


FROM OFICINAS
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE (SYSDATE-FEC_NAC_EMP)/365=(SELECT (MAX(SYSDATE-FEC_NAC_EMP)/365)
FROM EMPLEADOS));

-----------------------------------------------------------------------------------
---------------------------
Mostrar el nombre, apellido y sueldo del contador mejor pagado de la oficina 2
SELECT NOM_EMP, APE_EMP, SUE_EMP
FROM EMPLEADOS
WHERE SUE_EMP=(SELECT MAX(SUE_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='CONTADOR'
AND COD_OFI_PER='2`';
-----------------------------------------------------------------------------

MOSTRAR CUANTOS EMPLEADOS NO GANAN MAS QUE EL SUELDO PROMEDIO

SELECT COUNT(CED_EMP), AVG(SUE_EMP)


FROM EMPLEADOS
WHERE SUE_EMP <> (SELECT AVG(SUE_EMP) (<=)
FROM EMPLEADOS)

------------------------------------------------------

MOSTRAR EL SUELDO PROMEDIO QUE SE PAGA POR OFICINA, PERO PARA EL CALCULO DEL SUELDP
PROMEDIO FILTRAR SOLO A LOS EMPLEADOS QUE GANEN MAS DE 800 DOLARES, Y MOSTRAR EN EL
REPORTE FINAL SOLO LOS SUELDOS PROMEDIO MAYORES A 1500 DOLARES.

SELECT COD_OFI_PER, AVG(SUE_EMP)


FROM EMPLEADOS
WHERE SUE_EMP>800
GROUP BY COD_OFI_PER
HAVING AVG(SUE_EMP)>1500;

-----------------------------------------------------------------------------------
--
Mostrar el nombre y apellido del estudiante que realizado mas de un prestamo
SELECT NOM_EST, APE_EST, CED_EST_PRES
FROM ESTUDIANTES
WHERE CED_EST =(SELECT CED_EST_PRES
FROM PRESTAMOS
GROUP BY CED_EST_PRES
HAVING COUNT(COD_PRES))

----------------------------------------------------------------------
Mostrar el nombre y apellido del estudiante que realizado mas de un prestamo
SELECT NOM_EST, APE_EST
FROM ESTUDIANTES
WHERE CED_EST IN (SELECT MAX(CED_EST_PRES)
FROM PRESTAMOS
GROUP BY CED_EST_PRES
HAVING COUNT(COD_PRES)>1);

-------------------------------------------------

Mostrar el codigo, RAM y microprocesador de la computadora que ha sido utlizado por


dos estudiantes en el mes de Noviembre

SELECT COD_COMP, RAM_COMP, MIC_COMP


FROM COMPUTADORES
WHERE COD_COMP IN (SELECT COD_COMP_PER
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN '01/11/2018' AND '31/1/2018'
GROUP BY COD_LAB_PER
HAVING COUNT (CED_EST_PRES)=2);

-----------------------------------------------------------------------------------
----------------
Mostrar el codigo, RAM y microprocesador de la computadora que ha sido utlizado por
dos estudiantes en el mes de Noviembre

SELECT COD_COM, RAM_COMP, MIC_COM


FROM COMPUTADORAS
WHERE COD_COMP IN (SELECT COD_COMP_PRES
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN '01/11/2018' AND '30/11/2018'
GROUP BY COD_LAB_PRES
HAVING COUNT(COD_PRES)=2);
-----------------------------------------------------------------------------------
--------

Mostrar el nombre y piso de ubicacion del laboratorio donde la computadora ha sido


utlizado por mas de un estudiante

SELECT NOM_LAB, PIS_UBI


FROM LABORATORIOS
WHERE COD_LAB IN (SELECT COD_LAB_COMP
FROM COMPUTADORAS
WHERE COD_COMP IN (SELECT COD_COMP_PRES
FROM PRESTAMOS
GROUP BY COD_LAB_PRES
HAVING COUNT (COD_PRES)>1));

-----------------------------------------------------------------------------------
-----------------------------
Mostrar el nombre y piso de ubicacion del laboratorio donde la computadora ha sido
utlizado por mas de 5 estudianteS

SELECT NOM_LAB, PIS_UBI


FROM LABORATORIOS
WHERE COD_LAB =(SELECT COD_LAB_PER
FROM COMPUTADORAS
WHERE COD_COMP=(SELECT COD_COMP_PER)
FROM PRESTAMOS
GROUP BY COD_COMP_PER
HAVING COUNT(ID_PRES)>5);
-----------------

Mostrar el nombre y piso de ubicacion del laboratorio donde la computadora ha sido


utlizado por mas de 2 estudiantes

SELECT NOM_LAB, PIS_UBI


FROM LABORATORIOS
WHERE COD_LAB IN (SELECT COD_LAB_COMP
FROM COMPUTADORAS
WHERE COD_COM IN (SELECT COD_COMP_PRES
FROM PRESTAMOS
GROUP BY COD_LAB_COMP
HAVING COUNT(COD_PRES)>2));
-----------------------------------------------------------------------------------
--

Mostrar el promedio de los estudiantes que han utilizado computadoras del


laboratorio REDES
SELECT AVG(Prom_Est)
FROM ESTUDIANTES
WHERE Ced_Est IN ( SELECT Ced_Est_Pres
FROM PRESTAMOS
WHERE Cod_Comp_Pres IN (SELECT Cod_Comp
FROM COMPUTADORAS
WHERE Cod_Lab_Comp IN (SELECT Cod_Lab
FROM LABORATORIOS
WHERE Nom_Lab='REDES')));
----------------------------------------------------------------------------

Mostrar el nombre del laboratorio que tiene mas de 5 computadoras


SELECT NOM_LAB
FROM LABORATORIOS
WHERE COD_LAB IN (SELECT COD_LAB_COMP
FROM COMPUTADORAS
GROPU BY COD_LAB_COMP
HAVING COUNT(COD_COMP)>5);

-------------------------------------------------
MOSTRAR EL CODIGO DEL DEPARTAMENTO Q TENGA MAS DE 3 EMPLEADOS

SELECT COD_DEP_PER
FROM DEPARTAMENTOS
GROUP BY COD_DEP_PER
HAVING COUNT(CED_EMP)>3;
-------------------------------------------------------------
OBTENER LA SUMA DE LOS SUELDOS Q SE PAGAN POR DEPARTAMENTO PERO SOLO DE LOS
EMPLEADOS CUYO SUELDO SEA MAYORA 600 DOLARES y solo reportar SI LA SUMA ES MAYOR A
2000 DOLARES

SELECT COD_DEP_PER, SUM(SUE_EMP)


FROM EMPLEADOS
WHERE SUE_EMP> 600
GROUP BY COD_DEP_PER
HAVING SUM(SUE_EMP)>2000;
---------------------------------------------------------------------------------
OBTENER EL PROMEDIO DE LOS SUELDOS Q SE PAGAN POR DEPARTAMENTO PERO SOLO DE LOS
EMPLEADOS CUYO SUELDO NO SEA MAYORA 600 DOLARES y solo reportar SI LA SUMA ES MAYOR
A 2000 DOLARES
SELECT COD_DEP_PER, AVG(SUE_EMP)
FROM EMPLEADOS
WHERE NOT (SUE_EMP>600)
GROUP BY COD_DEP_PER;

----------------------
MOSTRAR EL CODIGO DEL DEPARTAMENTO Q TENGA MAS DE 3 EMPLEADOS
SELECT COD_DEP_PER, COUNT(CED_EMP)
FROM EMPLEADOS
GROUP BY COD_DEP_PER
HAVING COUNT(CED_EMP);
------------------------------------------

MOSTRAR EL CODIGO DEL DEPARTAMENTO Q TENGA MENOS DE 5 EMPLEADOS


SELECT COD_DEP_PER, COUNT(CED_EMP)
FROM EMPLEADOS
GROUP BY COD_DEP_PER
HAVING COUNT(CED_EMP)<5;
-----------------------------------------

MOSTRAR CUANTAS SECRETARIAS TRABAJAN POR DEPARTAMENTO


SELECT COD_DEP_PER, COUNT(CED_EMP)
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
GROUP BY COD_DEP_PER;
---------------------------------------------------------------------------------
MOSTRAR CUANTOS EMPLEADOS POR DEPARTAMENTO GANAN MAS QUE EL CONSERJE(TOMO LE MAYOR
DE LOS SUELDO)
SELECT COD_DEP_PER, COUNT(CED_EMP)
FROM EMPLEADOS
WHERE SUE_EMP =(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CAR_EMP ='CONSERJE'
GROUP BY COD_DEP_PER );

-----------------------------------------------------------------------
MOSTRAR EL CODIGO DEL DEPARTAMENTO QUE TIENE MAS EMPLEADOS CON EL CARGO SECRETARIA

SELECT COD_DEP_PER, COUNT(CED_EMP)


FROM DEPARTAMENTO
GROUP BY COD_DEP_PER
HAVING COUNT(CED_EMP) = (SELECT MAX(COUNT(CED_EMP))
FROM EMPLEADOS
WHERE CAR_EMP='SECRETARIA'
GROUP BY COD_DEP_PER);

-----------------------------------------------------------------------------------
-----
MOSTRAR EL CODIGO DEL DEPARTAMENTO QUE TIENE MENOS EMPLEADOS CON EL CARGO DE
GERENTE
SELECT COD_DEP_PER, COUNT(CED_EMP)
FROM DEPARTAMENTO
GROUP BY COD_DEP_PER
HAVING COUNT(CED_EMP)=(SELECT MIN(COUNT(CED_EMP))
FROM EMPLEADOS
WHERE CAR_EMP='GERENTE'
GROUP BY COD_DEP_PER);
-----------------------------------------------------------------------
MOSTRAR CUANTOS CLIENTES SE VISITO POR EMPLEADO
SELECT CED_CLI_VIS, COUNT(CED_CLI_VIS)
FROM VISITAS
WHERE CED_EMP_VIS;

-----------------------------------------------------------------

MOSTRAR CUANTOS CLIENTES SE VISITO POR EMPLEADO


SELECT CED_CLI_VIS, COUNT(CED_CLI_VIS)
FROM VISITA
WHERE CED_EMP_VIS;
-----------------------------------------------------------------
MOSTRAR LA CEDULA DEL CLIENTE AL Q SE LE HA VISITADO (MAS DE UNA VEZ)HAVING POR EL
MOTIVO COBRANZAS

SELECT CED_CLI_VIS, COUNT(COD_VIS)


FROM VISITAS
WHERE MOT_VIS='COBRANZAS'
GROUP BY CED_CLI_VIS
HAVING COUNT(COD_VIS)>1;

--------------------------------------
MOSTRAR LA CEDULA DEL CLIENTE AL Q SE LE HA VISITADO MAS DE 2 VECES POR EL MOTIVO
VENTAS

SELECT CED_CLI_VIS, COUNT(NUM_VIS)


FROM VISITAS
WHERE MOT_VIS='VENTAS'
GROUP BY CED_CLI_VIS
HAVING COUNT(NUM_VIS)>2;

-----------------------------------------------------------------------------------

MOSTRAR EL NOMBRE Y DIRECCION DEL CLIENTE AL Q SE LE HA VISITADO MAS DE 2 VECES


POR EL MOTIVO VENTAS
SELECT NOM_CLI, DIR_CLI
FROM CLIENTES
WHERE CED_CLI=(SELECT CED_CLI_VIS
FROM VISITAS
WHERE MOT_VIS='VENTAS'
GROUP BY CED_CLI_VIS
HAVING COUNT (NUM_VIS)>2);

-----------------------------------------------------------------------------------
----

MOSTRAR EL NOMBRE, APELIIDO Y DIRECCION DEL CLIENTE AL Q SE LE HA VISITADO MAS DE


2 VECES POR EL MOTIVO COBRANZAS

SELECT NOM_CLI, APE_CLI, DIR_CLI


FROM CLIENTES
WHERE CED_CLI =(SELECT CED_CLI_VIS
FROM VISITAS
WHERE MOT_VIS='COBRANZAS'
GROUP BY CED_CLI_VIS
HAVING COUNT(NUM_VIS)>2);
----------------------------------------------------------------------------------

MOSTRAR LA CEDULA DEL EMPLEADO QUE NO HA REALIZADO VISITAS DURANTE LA ULTIMA SEMANA
SELECT CED_EMP
FROM EMPLEADOS
WHERE CED_EMP NOT IN (SELECT DISTINC CED_EMP_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN SYSDATE-7 AND SYSDATE);
-----------------------------------------------------------------------------------
--------

MOSTRAR LA CEDULA DEL EMPLEADO QUE NO HA REALIZADO VISITAS DURANTE EL ULTIMO MES
SELECT CED_EMP
FROM EMPLEADOS
WHERE CED_VIS NOT IN (SELECT CED_VIS_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN SYSDATE-30 AND SYSDATE);

------------------------------------------------------------------------------

MOSTRAR LA CEDULA DEL EMPLEADO QUE HA REALIZADO VISITAS DURANTE EL MES DE


NOVIEMBRE

SELECT CED_EMP
FROM EMPLEADOS
WHERE CED_EMP IN (SELECT CED_EMP_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN '01/11/2018' AND '30/11/2018');

-----------------------------------------------------------------------------------
-

MOSTRAR LA CEDULA DEL EMPLEADO Q HA REALIADO MAS VISITA EN EL ULTIMO MES

SELECT CED_EMP_VIS, CED_EMP


FROM EMPLEADOS
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_EMP_VIS) = (SELECT MAX(COUNT(CED_EMP_VIS))
FROM VISITAS
WHERE FEC_VIS BETWEEN SYSDATE-30 AND SYSDATE
GROUP BY CED_EMP_VIS);

-------------------------------------------------------------------------------

MOSTRAR LA CEDULA DEL EMPLEADO Q HA REALIADO MAS VISITA EN EL MES DE OCTUBRE

SELECT CED_EMP_VIS, CED_EMP


FROM EMPLEADOS
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_EMP_VIS) =(SELECT MAX(COUNT(CED_EMP_VIS))
FROM VISITAS
WHERE FEC_VIS BETWEEN '01/10/2018' AND 31/10/2018
GROUP BY CED_EMP_VIS);

----------------------------------------------

MOSTRAR LA CEDULA DEL EMPLEADO Q HA VISITADO MAS DE 5 VECES AL CLIENTE CON


CEDULA 2001 Y TAMBIEN HA VISITADO MAS DE 6 VECES AL CLIENTE CON CEDULA 2003 DURANTE
EL ULTIMO MES.
SELECT CED_EMP_VIS, CED_EMP
FROM VISITAS
WHERE CED_EMP_VIS=(SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_CLI_VIS='2001' AND FEC_VIS BETWEEN SYSDATE-30 AND
SYSDATE
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_CLI_VIS)>5)
AND CED_EMP_VIS=(SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_CLI_VIS='2003' AND FEC_VIS BETWEEN SYSDATE-30 AND
SYSDATE
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_CLI_VIS)>6);

------------------------------------------------

SELECT NOM_QUI, PIS_UBI_QUI, TIP_QUI


FROM QUIROFANO
WHERE COD_QUI_PER IN (SELECT COD_QUI_PER
FROM OPERACIONES
WHERE FEC_OPE BETWEEN SYSDATE-7 AND SYSDATE
GROUP BY COD_QUI_PER
HAVING COUNT(NUM_OPE)>7);

------------------------------------------------------------------------

SELECT NOM_MED, APE_MED


FROM MEDICOS
WHERE GRADO='CIRUJANO' AND CED_MED =(SELECT CED_MED_PER
FROM OPERACIONES
GROUP BY CED_MED_PER
HAVING COUNT(NUM_OPE)= (SELECT MAX(COUNT(NUM_OPE))
FROM OPERACIONES
WHERE FEC_OPE BETWEEN
'01/11/2018' AND '30/11/2018'));

-----------------------------------------------------------------------------------
----------

SELECT NOM_PAC, APE_PAC


FROM PACIENTES
WHERE CED_PAC=(SELECT CED_PAC_PER
FROM OPERACIONES
GROUP BY CED_PAC_PER
HAVING SUM(COSTO_OP)=(SELECT MAX(SUM(COST_OP))
FROM OPERACIONES
GROUP BY CED_PAC_PER));

-----------------------------------------------------------------------------------
---------

SELECT COD_MED_PER, NUM_OPE CONTEO_OPERACIONES, SUM(NUM_OPE) TOTAL


FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/12/2019' AND 31/12/2019
GROUP BY COD_MED_PER;
.............................................................

MOSTRAR LA CEDULA NOMBRE, APELLIDO DE� MEDICO Q HA REALIZADO MAS OPERACIONES


DURANTE EL MES DE NOVIEMBRE DEL 2017
SELECT CED_MED, NOM_MED
FROM MEDICOS

WHERE CED_MED IN (SELECT CED_MED_PER


FROM OPERaACIONES
GROUP BY CED_MED_PER
HAVING COUNT (NUM_OPE)=(SELECT MAX(COUNT(NUM_OPE))
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/11/2018' AND
31/11/2018
GROUP BY CED_MED_PER));

-----------------------------------------------------------------------------------
----------------
MOSTRAR EL NUM_OPE DE LA OPERACION EN LA Q PARTICIPARON MENOS DE DOS ENFERMERAS
SELECT ID_OPE
FROM OPERACIONES
WHERE CED_ENF IN (SELECT CED_ENF_PER
FROM ENFERMERAS
GROUP BY CED_ENF_PER
HAVING COUNT(CED_ENF)>2);

--------------------------------------------------------------------------------
MOSTRAR EL REPORTE D LOS VALORES Q SE DEBEN PAGAR EN MEDICOS CLASIFICADOS POR
ESPECIALIDAD
SELECT COD_ESP_PER, SUM(SUE_MED)
FROM MEDICOS
GROUP BY COD_ESP_PER;

--------------------------------------------------------------------------------

MOSTRAR LA CEDULA DEL MEDICO QUE REALIZO MAS DE 10 OPERACIONES EN NOVIEMBRE, PERO
MENOS DE 5 OPERACIONES EN DICIEMBRE
SELECT CED_MED
FROM MEDICOS
WHERE CED_MED IN (SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/11/2018' AND 31/11/2018
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)>10
AND CED_MED IN (SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/12/2018' AND 31/12/2018
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)<5));

-----------------------------------------------------------------------------------
------------------------------------------
MOSTRAR EL SIGUIENTE REPORTE
COD_MED_OPE CONTEO_OPERACIONES TOTAL_COBRADO
1801 12 1000
1802 13 200

SELECT COD_MED_OPE. COUNT(ID_OPE) CONTEO_OPERACIONES, SUM_(SUE_MED) TOTAL_COBRADO


FROM MEDICOS
GROUP BY COD_MED_OPE;

--------------------------------------------------------------------------

MOSTRAR EL NOMBRE, APELLIDO DEL PACIENTE QUE HA PAGADO MAS DINERO POR OPERACIONES
SELECT NOM_PAC, APE_PAC,
FROM PACIENTES
WHERE CED_PAC=(SELECT CED_PAC_PER
FROM OPERACIONES
GROUP BY CED_PAC_PER
HAVING SUM (COSTO_OPE)=(SELECT MAX(SUM(COSTO_OPE))
FROM OPERACIONES
GROUP BY CED_PAC_PER));
-----------------------------------------------------------------------------------
-------------------------------------
MOSTRAR EL NOMBRE Y APELLIDO DEL MEDICO CON EL GRADO DE CIRUJANO Q HA REALIZADO MAS
OPERACIONES EN EL MES DE NOVIEMBRE
SELECT NOM_MED, APE_MED
FROM MEDICOS
WHERE GRADO_MED='CIRUJANO'
AND CED_MED IN (SELECT (CED_MED_OPE)
FROM OPERACIONES
GROUP BY CED_MED_OPE)
HAVING COUNT(ID_OPE)=(SELECT MAX(COUNT(ID_OPE))
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/11/2018' AND
'31/11/2018'
GROUP BY CED_MED_OPE));

-----------------------------------------------------------------------------------
----------------

MOSTRAR EL NOMBRE Y APELLIDO DEL MEDICO CON EL GRADO DE CIRUJANO Q HA REALIZADO MAS
OPERACIONES EN EL ULTIMO MES

SELECT NOM_MED, APE_MED


FROM MEDICOS
WHERE GRADO_MED='CIRUJANO'
AND CED_MED =(SELECT CED_MED_OPE
FROM OPERACIONES
GROUP BY CED_MED_OPE
HAVIN COUNT(ID_OPE)=(SELECT MAX(COUNT(ID_OPE))
FROM OPERACIONES
WHERE FEC_OPE SYSDATE-30 AND SYSDATE
GROUP BY CED_MED_PER ));

-----------------------------------------------------------------

MOSTRAR EL NOMBRE, PISO DE UBI Y TIPO DE QUIEOFANO Q HA SIDO UTIIZADO EN MAS DE 7


OPERACIONES EN LA ULTIMA SEMANA

SELECT NOM_QUI, PIS_UB, TIP_QUI


FROM QUIROFANOS
WHERE COD_QUI =(SELECT COD_QUI_PER
FROM OPERACIONES
GROUP BY COD_QUI_PER
HAVING COUT(ID_OPE)>7 );

-----------------------------------------------------------------------------------
------------------------------------------------------------
MOSTRAR LA CEDULA DEL EMPLEADO Q HA VISITADO MAS DE 5 VECES AL CLIENTE CON
CEDULA 2001 Y TAMBIEN HA VISITADO MAS DE 6 VECES AL CLIENTE CON CEDULA 2003 DURANTE
EL ULTIMO MES.

SELECT CED_EM_VIS
FROM VISITA
WHERE CED_EMP_VIS IN (SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_EMP_VIS='2001'
AND FEC_VIS BETWEEN SYSDATE -30 AND SYSDATE
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_EMP_VIS)>5
AND CED_EMP_VIS IN (SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_EMP_VIS='2002'
AND FEC_VIS BETWEEN SYSDATE -30 AND SYSDATE
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_EMP_VIS)>6));

--------------------------------------------------------------------------------
MOSTRAR LA CEDULA DEL MEDICO QUE REALIZO MAS DE 10 OPERACIONES EN NOVIEMBRE, PERO
MENOS DE 5 OPERACIONES EN DICIEMBRE
SELECT CED_MED
FROM MEDICOS
WHERE CED_MED IN (SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/11/2018' AND 30/11/2018
GROUP BY CED_MED_OPE
HAVING COUNT (ID_OPE)>10)
AND CED_MED IN (SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/12/2018' AND '31/12/2018'
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)<5);

MOstrar la placa, marca, y a�o del auto que se presto mas de 10 veces en Octubre,
pero que se presto menos de 5 veces en Noviembre.
SELECT PLAC_AUT, MARC_AUT, A�O_AUT
FROM AUTOS
WHERE PLAC_AUT IN (SELECT PLAC_AUT_PRES
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN '01/10/2018' AND '31/10/2018'
GROUP BY PLAC_AUT_PRES
HAVING COUNT(ID_PRES)>10)
AND PLAC_AUT IN (SELECT PLAC_AUT_PRES
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN '01/11/2018' AND '30/11/2018'
GROUP BY PLAC_AUT_PRES
HAVING COUNT(ID_PRES)<5);

-----------------------------------------------------------------------------
MOSTRAR EL NOMBRE, PISO DE UBI Y TIPO DE QUIEOFANO Q HA SIDO UTIIZADO EN MAS DE 5
OPERACIONES EN EL ULTIMO MES

SELECT NOM_QUI, PIS_UBI, TIP_QUI


FROM QUIROFANO
WHERE COD_QUI =(SELECT COD_QUI_OPE
FROM OPERACIONES
WHERE FEC_OPE SYSDATE-30 AND SYSDATE
GROUP BY COD_QUI_OPE
HAVING COUN(ID_OPE)>5);
-----------------------------------------------------------------------------------
------------------

MOSTRAR EL NOMBRE Y APELLIDO DEL MEDICO CON EL GRADO DE CIRUJANO Q HA REALIZADO MAS
OPERACIONES EN EL ULTIMO MES
SELECT NOM_MED, APE_MED
FROM MEDICOS
WHERE GRADO='CIRUJANO'
AND CED_MED =(SELECT CED_MED_OPE
FROM OPERACIONES
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)=(SELECT MAX(COUNT(ID_OPE))
FROM OPERACIONES
WHERE FEC_OPE SYSDATE -30 AND SYSDATE
GROUP BY CED_MED_OPE));
--------------------------------------------------------------------------

MOSTRAR EL NOMBRE, APELLIDO DEL PACIENTE QUE HA PAGADO MAS DINERO POR OPERACIONES
SELECT NOM_PAC,APE_PAC
FROM PACIENTES
WHERE CED_PAC=(SELECT CED_PAC_OPE
FROM OPERACIONES
GROUP BY CED_PAC_OPE
HAVING SUM(GASTO_OPE)=(SELECT MAX(GASTO_OPE))
FROM OPERACIONES
GROUP BY CED_PAC_OPE));

-----------------------------------------------------------------------------------
--------------------
Mostrar el nombre del laboratorio que tiene mas de 5 computadoras
SELECT NOM_LAB
FROM LABORATORIOS
WHERE COD_LAB =(SELECT COD_LAB_PER
FROM COMPUTADORAS
FROUP BY COD_LAB_PER
HAVING COUNT(COD_COMP)>5);

-----------------------------------------------------------------------------------
----
MOSTRAR LA CEDULA DEL MEDICO QUE REALIZO MAS DE 10 OPERACIONES EN EL ULTIMO MES,
PERO MENOS DE 5 OPERACIONES EN LA ULTIMA SEMANA
SELECT CED_MED
FROM MEDICOS
WHERE CED_MED IN(SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE SYSDATE-30 AND SYSDATE
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)>10)
AND CED_MED IN (SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE SYSDATE-7 AND SYSDATE
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)<5);

----------------------------------------------------------------------------------

MOSTRAR LA CEDULA DEL EMPLEADO Q HA VISITADO MAS DE 5 VECES AL CLIENTE CON


CEDULA 2001 Y TAMBIEN HA VISITADO MAS DE 6 VECES AL CLIENTE CON CEDULA 2003 DURANTE
EL ULTIMO MES.

SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_EMP_VIS IN(SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_CLI_VIS='2001' AND FEC_VIS SYSDATE-30 AND SYSDATE
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_CLI_VIS)>5)
AND CED_EMP_VIS IN (SELECT CED_EMP_VIS
FROM VISITAS
WHERE CED_CLI_VIS='2003' AND FEC_VIS SYSDATE-30 AND SYDATE
GROUP BY CED_EMP_VIS
HAVING COUNT(CED_CLI_VIS)>6);
-----------------------------------------------------------------

PRUEBA
MOSTRAR EL NOMBRE DE LA CARRERA EN LA ESTUDIA EL ESTUDIANTE QUE UTILIZO LA
COMPUTADORA CON EL CODIGO PC05 EL DIA LUNES 20 DE NOVIEMBRE Y SE REGISTRO LA
OBSERVACION 'PC DA�ANDA' Y UTILIZO LA MISMA COMPUTADORA EL MARTES 21 DE NOVIEMBRE Y
SE REGISTRO EN LA OBJSERVACION 'PC FORMATEADA'

SELECT NOM_CAR
FROM CARRERAS
WHERE COD_CAR=(SELECT COD_CAR_PER
FROM SEMESTRES
WHERE COD_PAR=(SELECT COD_PAR_PER
FROM PARALELOS
WHERE CED_EST=(SELECT CED_EST_PER
FROM USOS
WHERE COD_COMP='PC05'
AND FEC_USO BETWEEN '20/11/2018' AND 30/11/2018
AND REG_OBS='PC DA�ADA'
AND CED_EST =SELECT CED_EST_PER
FROM USOS
WHERE COD_COMP='PC05'
AND FEC_USO BETWEEN '20/11/2018'
AND 30/11/2018
AND REG_OBS='PC FORMATEADA'))));

MOSTRAR EL NOMBRE Y APELLIDO DEL ESTUDIANTE QUE ESTUDIA EN LA CARRERA DE


ELECTRONICA Y QUE UTILIZO LA COMPUTADORA A01 DEL LABORATORIO CON EL NOMBRE REDES EL
DIA LUNES 13 DE NOVIEMBRE, Y CUYO PROMEDIO ES MAYOR QUE EL MAYOR DE LOS PROMEDIOS
DE LOS ESTUDIANTES CUYO APELLDIO EMPIEZA CON UNA LETRA A Y TIENE EN LA PENULTIMA
POSICION UNA LETRA d, Y CUYO NOMBRE NO LLEVA UNA LETRA m.

SELECT NOM_EST, APE_EST


FROM ESRUDIANTES
WHERE COD_CAR=(SELECT COD_CAR
FROM CARRERAS
WHERE NOM_CAR='ELECTRONICA'
AND CED_EST=(SELECT CED_EST_PER
FROM USOS
WHERE COD_COMP='A01'
AND NOM_LAB='REDES'
AND FECHA TODATE('13/11/2018
AND PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE APE_EST LIKE '%A_d'
AND NOM_EST LIKE %m%)'))

MOSTRAR EL NOMBRE Y APELLIDO DEL ESTUDOANTE QUE SI UTILIZO LA COMPUTADORA PC01 EL


DIA MARTES 14 DE NOVIEMBRE, PERO NO UTILIZO LA COMPUTADORA PC01 NI EL DIA MIERCOLES
15 DE NOVIEMBRE, NI EL DIA JUEVES 16 DE NOVIEMBRE

SELECT NOM_EST, APE_EST


FROM ESTUDIANTES
WHERE CED_EST=(SELECT CED_EST_PER
FROM USOS
WHERE COD_COMP='PC01'
AND FECHA TODATE('14/11/2018' 'DD/MM/YYYY')
AND CED_EST NOI IN (SELECT CED_EST_PER
FROM USOS
WHERE COD_COMP='PC01'
WHERE FECHA TODATE('15/11/2018' 'dd/mm/yyyy')
AND FECHA TODATE('16/11/2018' 'dd/mm/yyyy')

MOSTRAR EL CODIGO Y EL NOMBRE DEL LABORATORIO AL QUE PERTENECE LA COMPUTADORA QUE


NO FUE UTILIZADA NI EN LAS CLASES DE REDES, NI EN LAS CLASE DE BASE DE DATOS POR EL
ESTUDIANTE CUYO PROMEDIO ES MENOR AL PROMEDIO DE CUALQUIERA DE LOS ESTUDIANTES CON
EL APELLIDO PEREZ

SELECT COD_LAB, NOM_LAB


FROM LABORATORIOS
WHERE COD_LAB =( SELECT COD_LAB_PER
FROM COMPUTADORAS
WHERE COD_COMP NOT IN (SELECT COD_COMP_PER
FROM USOS
WHERE ))
-----------------------------------------------------------------------------------
---------

PRUEBA2
MOSTRAR LA CEDULA, NOMBRE, Y APELLIDO DEL MEDICO QUE HA REALIZADO MAS OPERACIONES
DURANTE EL MES DE NOVIEMBRE

SELECT CED_MED, NOM_MED, APE_MED


FROM MEDICOS
WHERE CED_MED =(SELECT CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN 01/11/2018 AND 30/11/2018
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE));

MOSTRAR LA ID_OPERACIONES DE LA OPERACION EN LA QUE PARTICIPARON MENOS DE 2


ENFERMERAS

SELECT ID_OPE
FROM OPERACIONES
WHERE CED_ENF=(SELECT CED_ENF_OPE
FROM OPERCIONES
GROUP BY CED_EN_OPE
HABING COUNT(ID_OPE)<2);

MOSTRAR EL REPORTE DE LOS VALORES QUE SE DEBEN PAGAR ENMEDICOS CLASIFICADOS POR
ESPECIALIDAD

SELECT SUM(SUE_MED), COD_ESP_MED


FROM MEDICOS
GROUP BY COD_ESP_MED

-
MOSTRAR LA CEDULA DEL MEDICO QUE REALIZO MAS DE 10 OPERACIONES EN NOVIEMBRE, PERO
MENOS DE 5 OPERACIONES EN DICIEMBRE

SELECT CED_MED
FROM MEDICOS
WHERE CED_MED IN (CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/11/2019' AND 30/11/2018)
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)>10
AND CED_MED IN (CED_MED_OPE
FROM OPERACIONES
WHERE FEC_OPE BETWEEN '01/12/2019' AND 30/12/2018)
GROUP BY CED_MED_OPE
HAVING COUNT(ID_OPE)<5);
-----------------------------------------------------------------------------------
--
MOSTRAR EL NOMBRE Y APELLIDO DEL CLIENTE QUE FUE VISITADO CON EL MOTIVO VENTA POR
EL
EMPLEADO RUTH RIOS

SELECT C.NOM_CLI, C.APE_CLI,


FROM CLIENTES C, VISITAS V, EMPLEADOS E
WHERE C.CED_CLI= V.CED_CLI_VIS
AND V.MOT_VIS='VENTA'
AND V.CED_EMP_VIS=E.CED_EMP
AND E.NOM_EMP='RUTH'
AND E.APE_EMP='RIOS';
-----------------------------------------------------------------------------------
------------
MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFCINA EN LA QUE TRABAJAEL EMPLEADO QIE
VISITO CON EL
MOTIVO MARKETING AL CLIENTE CON EL NOMBRE PAULINA.

SELECT O.NOM_OFI, O.PIS_UB_OFI


FROM OFICINAS O, EMPLEADOS E, VISITAS V, CLIENTES C
WHERE O.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP= V.CED_EMP_VIS
AND V.MOT_VIS='MARKETING'
AND V.CED_CLI_VIS=C.CED_CLI
AND C.NOM_CLI='PAULINA';
-----------------------------------------------------------------------------------
--------------------------
SELECT NOM_OFI, PIS_UBI_OFI
FROM OFICINA
WHERE COD_OFI=(SELECT COD_OFI_PER
FROM EMPLEADOS
WHERE CED_EMP=(SELECT CED_EMP_VIS
FROM VISITAS
WHERE MOT_VIS='MARKETING
AND CED_CLI_VIS=SELECT CED_CLI
CLIENTES
WHERE NOM_CLI='PAULINA'))
-----------------------------------------------------------------
MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFICINA A LA QUE PERTENECE EL EMPLEADO
QUE ATENDIO AL CLIENTE CON CEDULA
2002. MOSTRAR ADEMAS LA FECHA DE LA ATENCION

SELECT O.NOM_OFI, O.PIS_UBI


FROM OFICINAS O, EMPLEADOS E, CLIENTES C, VISITAS V
WHERE O.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP_VIS=V.CED_EMP
AND V.CED_CLI='2002'

----------------------------------------------
MOSTRAR EL NOMBBRE APELLIDO Y PROMEDIO DE LOS ESTUDIANTES QUE PERTENENCEN
AL NIVEL CON EL NOMBRE TERCEROA DE LA CARRERQA CON LA DESCRIPCION DIGITAL

SELECT E.NOM_EST, E.APE_EST, E.PROM_EST


FROM ESTUDIANTES E, NIVEL N, CARRERA C
WHERE E.COD_NIV = N.COD_NIV_PER
AND N.COD_CAR_PER=C.COD_CAR
AND N.NOM_CAR='TERCER A'
AND C.DES_CAR='DIGITAL'

----------------------------------------------------------------
MOSTARA EL NOMBRE,CODIGO DE LA CARRERA Y EL NOMBRE,CODIGO DEL NIVEL AL
QUE PERTENECE EL ESTUDIANTES CON EL APELLIDO ZURITA Y EL PROMEDIO MAYOR A 5

SELECT C.NOM_CAR, C.COD_CAR, N.COD_NIV


FROM CARRERAS C, NIVELES N, ESTUDIANTES E
WHERE C.COD_CAR=N.COD_CAR_PER
AND N.COD_NIV=E.COD_NIV_PER
AND E.APE_EST='ZURITA'
AND E.PROM_EST>5;

--------------------------------------------------------------

MOSTRAR EL NOMBRE Y APELLIDO DEL EMPLEADOS QUE ATENDIO EL MES DE ABRIL AL CLIENTE
OCN EL NOMBRE CARLOS PEREZ

SELECT E.NOM_EMP, E.APE_EMP


FROM EMPLEADOS E, CLIENTES C
WHERE E.CED_EMP= V.CED_EMP_VIS

AND V.FEC_VIS BETWEEN 01/04/2018 AND 30/04/2018


AND V.CED_CLI_VIS=C.CED_CLI
AND C.NOM_CLI='CARLOS'
AND C.APE_CLI='PEREZ'
-----------------------------------------------------------------
MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFCINA EN LA QUE TRABAJAEL EMPLEADO QIE
VISITO CON EL
MOTIVO MARKETING AL CLIENTE CON EL NOMBRE PAULINA.
SELECT
FROM OFICINAS O, EMPLEADOS E, VISITAS
WHERE O.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP=V.CED_CLI
AND V.MOT_VIS='MARKETING'
AND V.CED_EMP_VIS=C.CED_CLI
AND C.NOM_CLI='PAULINA';

Mostrar el nombre y piso de ubicacion del departamento al que peetenece el empleado


que atendio en el mes de mayo al cliente cuyo nombre tiene una letra A
en cualquier parte

SELECT
FROM DEPARTAMENTOS D, EMPLEADOS E, VISITAS V
WHERE D.COD_DEP=E.COD_DEP_PER
AND E.CED_EMP=V.CED_EMP_VIS
AND V.FEC_VIS BETWEEN 01/06/2018 AND 30/06/2018
AND V.CED_EMP_VIS=C.CED_CLI
AND C.NOM_CLI LIKE '%A%'
-----------------------------------------------------------------------
MOSTRAR EL NOMBRE Y APELLIDO DEL EMPLEADOS QUE ATENDIO EL MES DE ABRIL AL CLIENTE
OCN EL NOMBRE CARLOS PEREZ

SELECT NOM_EMP, APE_EMP


FROM EMPLEADOS
WHERE CED_EMP =(SELECT CED_EMP_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN 01/04/2018 AND 30/04/2018
AND CED_CLI_VIS=(SELECT CLI_VIS
FROM CLIENTES
WHERE NOM_CLI='CARLOS' AND APE_CLI='PEREZ'));
-----------------------------------------------------------------------------------
-----------
MOSTAR EL NOMBRE Y APELLIDO DE LOS ESTUDIANTES QUE PERTENECEN A LA CARRERA CON
NOMBRE SISTEMAS

SELECT
FROM ESTUDIANTE E, CARRERAS C, NIVELES N
WHERE C.NOM_CAR='SISTEMAS'
AND C.COD_CAR=N.COD_NIV_PER
AND N.COD_NIV_PER=E.COD_NIV

Mostrar nombre y apellido del empleado mas joven de la empresa , y el nombre y


apellido el clientes visitados por el, y el motivo de la visita
SELECT NOM_EMP, APE_EMP
FROM EMPLEADOS
WHERE CED_EMP=(SELECT CED_EMP
FROM EMPLEADOS
WHERE (SYSDATE FEC_NAC_EMP)/365 =(SELECT MIN (SYSDATE FEC_NAC_EMP)/365
FROM VISITAS
WHERE CED_CLI_VIS=(SELECT CED_CLI
FROM VISITAS))
Mostrar el codigo, nombre , descipcion del departamento al que pertenece el
empleado que si realizao visitas al cliente con el apellido PEREZ durante el mes de
abril con el motivo cobranza pero no visito al cliente con el apellido SORIA
durante el mes de FEBRERO con el motivo PUBLICIDAD
SELECT
FROM DEPARTAMENTOS D, EMPLEADOS E, VISITAS V
WHERE D.COD_DEP=E.COD_DEP_PER
AND E.CED_EMP=V.CED_EMP_VIS
AND V.FEC_VIS BETWEEN 01/04/2018 AND 30/04/2018
AND V.MOT_VIS='COBRANZA'
AND V.CED_CLI_VIS=C.CED_CLI
AND C.NOM_CLI='PEREZ'
AND C.CED_CLI NOT IN (SELECT CED_CLI_VIS
FROM VISITAS
WHERE BETWEEN 01/04/2018 AND 30/04/2018
AND MOT_VIS='PUBLICIDAD'
AND CED_CLI_VIS=(SELECT CED_CLI
FROM CLIENTES
WHERE APE_CLI='SORIA');

-----------------------------------------------------------------------------------
----
MOSTARA EL NOMBRE,CODIGO DE LA CARRERA Y EL NOMBRE,CODIGO DEL NIVEL AL
QUE PERTENECE EL ESTUDIANTES CON EL APELLIDO ZURITA Y EL PROMEDIO MAYOR A 5

SELECT
FROM CARRERAS C, NIVELES N, ESTUDIANTES
WHERE C.COD_CAR=N.COD_CAR_PER
AND N.COD_NIV_PER=E.COD_NIV
AND E.APE_EST='ZURITA'
ANP E.PROM_EST>5;

-----------------------
MOSTRAR EL NOMBRE Y LA DESCRIPCION DE LA CARRERA A LA QUE PERTENECE
EL CURSO EN EL QUE ESTA EL ESTUDIANTE AL QUE SE LE PRESTO EL LBRO CON EL
CODIGO L01

SELECT NOM_CAR, DESC_CAR


FROM CARRERAS
WHERE COD_CAR=(SELECT COD_CAR_PER
FROM CURSOS
WHERE CED_EST=(SELECT CED_EST
FROM ESTUDIANTES
WHERE COD_LIB=(SELECT COD_LIB_PER
FROM PRESTAMOS
WHERE COD_LIB='L01')))

SELECT
FROM CARRERAS C, CURSOS CU, ESTUDIANTES E, PRESTAMOS P
WHERE C.COD_CAR =CU.COD_CAR_PER
AND CU.CED_EST=E.CED_EST
AND E.COD_LIB=P.COD_LIB_PER
AND P.COD_LIB='L01';

-----------------------------------------------------------------------------------
----------------------------------------

ACTUALIZAR EL CELULAR DEL ESTUDIANTE ANDRES CARDENAS AL NUEVO NUMERO 0911111111

UPDATE ESTUDIANTES
SET NOM_EST='ANDRES ',
APE_EST='CARDENAS',
CEL_EST='0911111111'
WHERE CED_EST='1802';

-----------------------------------------------------------------------------------
------
ACTUALIZAR LA CEDULA DEL ESTUDIANTE 1802 AL NUMERO 1807

UPDATE ESTUDIANTES
SET CED_EST='1807'
WHERE CED_EST='1802';
----------------------------------------------

ACTUALIZAR AL CLIENTE 2001 PARA QUE TENGA LA MISMA DIRECION QUE EL CLIENTE 2005

UPDATE CLIENTES
SET DIR_CLI = (SELECT DIR_CLI
FROM CLIENTES
WHERE CED_CLI='2005')

WHERE CED_CLI='2001';

-------------------------------------------------------------------------------

ACTUALIZAR LA DIRECCION DEL EMPLEADO Q GANA MAS QUE EL EMPLEADO CON CEDULA 1805,
PARA Q VIVA EN LA MISMA DIRECCION QUE EL EMPLEADO CON CEDULA 1803

UPDATE EMPLEADOS
SET DIR_EMP =(SELECT DIR_EMP
FROM EMPLEADOS
WHERE CED_EMP='1803'
WHERE SUE_EMP>(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805') );

---------------------------------------------------------------------
ACTUALIZAR CON LA NUEVA COMISION 78 DOLARES A LOS EMPLEADOS CON UNA ANTIGUEDAD
MAYOR A LA ANTIGUDAD EL EMPLEADO 1801

UPDATE EMPLEADOS
SET COMI_EMP=78

WHERE (SYDATE -FEC_NAC_EMP)/365 >(SELECT (SYDATE -FEC_NAC_EMP)/365


FROM EMPLEADOS
WHERE CED_EMP='1801');

-----------------------------------------------------------------------------------
ACTUALIZAR CON LA DIRECCION DEL CLIENTE 2003 A LOS EMPLEADOS Q GANEN MAS DE 1000
DOLARES

UPDATE EMPLEADOS
SET DIR_CLI=(SELECT DIR_CLI
FROM EMPLEADOS
WHERE CED_CLI='2003')
WHERE SUE_EMP>1000;
-----------------------------------------------------------------------------------
--

MOSTRAR EL NOMBRE Y APELLIDO DEL EMPLEADOS QUE ATENDIO EL MES DE ABRIL AL CLIENTE
OCN EL NOMBRE CARLOS PEREZ
SELECT
FROM EMPLEADOS E, VISITAS V, CLIENTES C
WHERE E.CED_EMP_VIS=V.CED_EMP
AND V.FEC_ATE BETWEEN '01/04/2018' AND '30/04%2018'
AND V.CED_CLI=C.CED_CLI_VIS
AND C.NOM_CLI='CARLOS'
AND C.APE_CLI='PEREZ';

--------------------------------------------------------------------------------

ACTUALIZAR CON LA COMISION 99 DOLARES A LOS EMPLEADOS QUE HAN REALZIADO MAS DE 2
VISITAS DURANTE EL MES DE MAYO

UPDATE EMPLEADOS
SET COMI_EMP=99
WHERE CED_EMP =(SELECT CED_EMP_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN '01/04/2018' AND '30/04%2018'
GROUP BY CED_EMP_VIS
HAVING COUNT(ID_VIS)>2 );
-----------------------------------------------------------------------------------
------------

MOSTRAR EL NOMBRE Y APELLIDO DE LOS ESTUDIANTES QUE PERTENECEN A LA


CARRERA CON EL NOMBRE SISTEMAS

SELECT
FROM ESTUDIANTES E, CARRERAS C, CURSOS CU
WHERE C.NOM_CAR='SISTEMAS'
AND C.COD_CAR=CU.COD_CAR_PER
AND CU.CED_EST=E.CED_EST_PER

-----------------------------------------------------------------------
MOSTRAR EL NOMRE DE LA CARRERA A LA QUE PERTENECE EL CURSO EN QUE
ESTAN LOS ESTUDIANTES QUE NO HAN SOLICITADO LIBROS PRESTADOS
DURANTE LOS ULTIMOS DOS MESES

SELECT
FROM CARRERAS CA, CUROS CU, ESTUDIANTES E
WHERE C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CU=E.COD_CUR_PER
AND E.CED_EST NOT IN (SELECT CED_EST_PER
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN 27/05/2018 AND 27/07/2018)
-----------------------------------------------------------------------------

ACTUALIZAR A LA NUEVA DIRECCION MIRAFLORES AL ESTUDIANTE CUYO


PROMEDIO ES MAYOIR QUE EL PROMEDIO DEL 1808

UPDATE ESTUDIANTES
SET DIR_EST='MIRAFLORES'
WHERE PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE CED_EST='1808');
-------------------------------------------------------------------------
ACTUALIZAR AL EMPLEADO Q HA VISITADO MAS DE 3 VECES AL CLIENTE CON EL APELLIDO MERA
, PARA QUE TENGA UNA COMISION EQUIVALENTE AL 10% DEL SUELDO DEL GERENTE
UPDATE EMPLEADOS
SET COMI_EMP =(SELECT COMI_EMP*0.1
FROM EMPLEADOS
WHERE CAR_EMP='GERENTE')

WHERE CED_EMP=(SELECT CED_EMP_VIS


FROM VISITAS
WHERE CED_CLI=(SELECT CED_CLI_VIS)
FROM CLIENTES
WHERE APE_CLI='MERA'
GROUP BY CED_EMP_VIS
HAVING COUNT(ID_VIS>3) );

----------------------------------------------------------------------------------

ACTUALIZAR EL TELEFONO DEL EMPELADO 1801 AL NUEVO VALOR '099111222' Y LA DIRECCION


DEL EMPLEADO 1801 ALNUEVO VALOR BANOS

UPDATE EMPLEADOS
SET TEL_EMP ='099111222',
DIR_EMP='BA�OS'
WHERE CED_EMP='1801';

-----------------------------------------------------------------------------------
------------------------
ACTUALIZAR EL SUELDO DEL EPLEADO CON CEDULA 1801 PARA QUE GANE EL DOBLE DEL SUELDO
DEL EMPLEADO 1805 Y QUE GANE LA MITAD DE LA COMISIN DEL EMPLEADO 1804

UPDATE EMPLEADOS
SET SUE_EMP=(SELECT SUE_EMP*2
FROM EMPLEADOS
WHERE CED_EMP='1805'
AND SUE_EMP=(SELECT SUE_EMP*0.5
FROM EMPLEADOS
WHERE CED_EMP='1804') )

WHERE CED_EMP='1801';

------------------------------------------------------------------------------

ELIMINAR AL EMPLEADO QUE GANA MAS QUE EL EMPLEADO CON CEDULA 1805, PERO QUE GANA
MENOS Q EL EMPLEADO CON CEDULA 1801

DELETE FROM EMPLEADOS


WHERE SUE_EMP >(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805')
AND SUE_EMP< (SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805')
-----------------------------------------------------------------------------------
----

ELIMINAR A LOS CLIENTES Q NO HAN SIDO VISITADOS DURANTE EL MES DE ABRIL NI EN MAYO

DELETE FROM CLIENTES


WHERE CED_CLI NOT IN (CED_CLI_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN 01/04/2018 AND 30/04/2018
OR FEC_VIS BETWEEN 01/05/2018 AND 30/05/2018)
-----------------------------------------------------------------------------------
--------

CREAR LA TABLA EPLEADOS ANTIGUOS CON LA CEDULA, NOMBRE, APELLIDO Y ANTIGUEDAD DE


LOS EMPLEADO CON UNA ANTIGUEDAD MAYOR A 3 A�OS

CREATE TABLE EMPLEADOS_ANTIGUOS


AS
SELECT CED_EMP, NOM_EMP, APE_EMP, (SYSDATE-FEC_NAC_EMP)/365 ANTIGUEDAD
FROM EMPLEADOS
WHERE (SYSDATE-FEC_NAC_EMP)/365>3;

-----------------------------------------------------------------------------------
-------------------------------------

REACION DE LA TABLAS EMPLEADOS NUEVOS

CREATE TABLE EMP_NUEVOS


(
CED_EMP VARCHAR(10) PRIMARY KEY
NOM_EMP VARCHAR(10),
APE_EMP VARCHAR(10),
DIR_EMP VARCHAR(10),
SUE_EMP NUMBER
)

CARGAR EN LA TABLA EMP_NUEVOS A LOS EMPLEADOS CON UNA ANTIGUEDAD MENOR A 3 A�O

INSERT INTO EMP_NUEVOS


SELECT CED_EMP, NOM_EMP, APE_EMP, DIR_EMP, DIR_EMP, SUE_EMP
FROM EMPLEADOS
WHERE (SYSDATE-FEC_NAC_EMP)/365<3;

-----------------------------------------------------------------------------------
--------------------------

MOSTRAR EL NOMBRE Y APELLIDO DEL ANESTESISTA Y EL NOMBRE Y APELLIDO DEL MEDICO QUE
ASISTIO EN LA OPERACION REALIZADA EL 5 DE DICIEMBRE AL PACIENTE CUYO APELLIDO
EMPIEZA CON UNA LETRA A, Y CUYO NOMBRE TERMINA CON UNA LETRA s, CON EL MOTIVO DE LA
OPERACION CESARIA, Y QUE COSTO MAS DE 400$

SELECT
FROM ANESTESISTA A, MEDICO M, OPERACIONES O, PACIENTES P
WHERE M.CED_MED=O.CED_MED_OPE
AND O.FEC_OPE TO_DATE ('05/12/2018' 'dd/mm/yyyy')
AND O.CED_PAC = P.CED_PAC
AND P.APE_PAC LIKE'A%'
AND P.APE_PAC LIKE '%s'
AND O.MOT_OPE='CESARIA'
AND O.COST_OPE>400;

-----------------------------------------------------------------------------------
----------------

ACTUALIZAR LA FECHA DE NACIMIENTO DEL ESTUDIANTE QUE TIENE PROMEDIO


MAYOR AL PROMEDIO DEL ESTUDIANTE CON CEDULA 1804, PARA QUE TENGA
LA MISMA FECHA DE NACIMIENTO QUE EL ESTUDIANTE 1808
UPDATE ESTUDIANTES
SET FEC_NAC_EST =(SELECT FEC_NAC
FROM ESTUDIANTES
WHERE CED_EST='1808')
WHERE PROM_EST >(SELECT PROM_EST
FROM ESTUDIANTES
WHERE CED_EST='1804');

-------------------------------------------------

ACTUALIZAR LA DIRECCION DEL EMPLEADO Q GANA MAS QUE EL EMPLEADO CON CEDULA 1805,
PARA Q VIVA EN LA MISMA DIRECCION QUE EL EMPLEADO CON CEDULA 1803

UPDATE EMPLEADOS
SET DIR_EMP =(SELECT DIR_EMP
FROM EMPLEADOS
WHERE CED_EMP='1803')
AND SUE_EMP>(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805' );

ACTUALIZAR LA FECHA DE NACIMIENTO DEL ESTUDIANTE QUE TIENE PROMEDIO


MAYOR AL PROMEDIO DEL ESTUDIANTE CON CEDULA 1804, PARA QUE TENGA
LA MISMA FECHA DE NACIMIENTO QUE EL ESTUDIANTE 1808

UPDATE ESTUDIATES
SET FEC_NAC_EST =(SELECT FEC_NAC_EST
FROM ESTUDIANTES
WHERE 1808)
WHERE PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE 1804);

----------------------------------------------------------------

EJEMPLO:
CREAR LA TABLA APROBADOS CON LA CEDULA NOMBRE APELLIDO Y PROMEDIO
DE LOS ESTUDIANTES CON EL PROMEDIO MAYOR O IGUAL A 7

CREATE TABLE APROBADOS


AS
SELECT CED_EST, NOM_EST, APE_EST, PROM_EST
FROM ESTUDIANTES
WHERE PROM_EST>7;

-----------------------------------------------------------------------------------
---------
CREAR TABLA DE REPROBADOS CON CED, NOM, APE, CEL Y PROM DE LOS
ESTUDIANTES CON PROMEDIO>7

CREATE TABLE REPROBADOS


(CED_EST VARCHAR(10) PRIMARY KEY,
NOM_EST VARCHAR(10),
APE_EST VARCHAR(10),
CEL_EST VARCHAR(10),
PROM_EST NUMBER);
-----------------------------------------------------------------
INSERT INTO REPROBADOS
SELECT CED_EST, NOM_EST, APE_EST, CED_EST, PROM_EST
WHERE PROM_EST>7;

-----------------------------------------------

ACTUALIZAR CON LA DIRECCION DEL CLIENTE 2003 A LOS EMPLEADOS Q GANEN MAS DE 1000
DOLARES
UPDATE CLIENTES
SET DIR_CLI=(SELECT DIR_CLI
FROM CLIENTES
WHERE CED_CLI='2003')
WHERE SUE_EMP>1000;

--------------------------------------------------------------------------------
MOSTRAR EL NOM, APE Y CEL DEL ESTUDIANTE DE LA CARRERA DE SISTEMAS
QUE PIDIO EL LIBRO CON EL NOMBRE JAVA LA 1RA SEMANA DE ABRIL Y LO
DEVOLVIO LA ULTIMA SEMANA DE ABRIL

SELECT
FROM ESTUDIANTES E, CARRERAS C, PRESTAMOS P, CURSOS CU, LIBROS L
WHERE C.NOM_CAR='SISTEMAS'
AND C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CUR=E.COD_CUR_PER
AND E.COD_PRE=P.COD_PRE_PER
AND L.NOM_LIB='JAVA'
AND L.COD_LIB=P.COD_PRE_PER
AND P.FEC_PRES BETWEEN 01/04/2018 AND 07/04/2018
AND P.FEC_DEV BETWEEN 24/04/2018 AND 30/04/2018

SELECT E.NOM_EST,E.APE_EST,E.CEL_EST
FROM ESTUDIANTES E, CARRERAS C, CURSO CU, PRESTAMOS P, LIBROS L
WHERE C.NOM_CAR='SISTEMAS'
AND P.FEC_PRE BETWEEN '01/04/2016' AND '07/04/2016'
AND P.FEC_DEV BETWEEN '24/04/2016' AND '30/04/2016'
AND L.NOM_LIB='GRANVILLE'
AND E.COD_CUR_P=CU.COD_CUR
AND CU.COD_CAR_P=C.COD_CAR
AND E.CED_EST=P.CED_EST_PER
AND P.COD_LIB_PER=L.COD_LIB;

-----------------------------------------------------------------------------------
---------------------
MOSTRAR EL NOMRE DE LA CARRERA A LA QUE PERTENECE EL CURSO EN QUE
ESTAN LOS ESTUDIANTES QUE NO HAN SOLICITADO LIBROS PRESTADOS
DURANTE LOS ULTIMOS DOS MESES

SELECT
FROM CARRERAS C, CUROS CU, ESTUDIANTES E, PRESTAMOS P
WHERE C.COD_CAR= CU.COD_CAR_PER
AND CU.COD_CUR=E.COD_CUR_PER
AND E.CED_EST NOT IN (SELECT CED_EST
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN 27/05/2018 AND 27/07/2018);

-----------------------------------------------------------------------------------
--------------
MOSTRAR EL NOMBRE Y LA DESCRIPCION DE LA CARRERA A LA QUE PERTENECE
EL CURSO EN EL QUE ESTA EL ESTUDIANTE AL QUE SE LE PRESTO EL LBRO CON EL
CODIGO L01

SELECT
FROM CARRERAS C, CURSOS CU, ESTUDIANTES, PRESTAMOS P
WHERE C.COD_cAR=CU.COD_CAR_PER
AND CU.COD_CUR_PER=E.COD_CUR_PER
AND E.COD_PRE=P.COD_PRES_P
AND E.CED_EST=P.CED_EST_P
AND P.COD_LIB_PER='L01';

----------------------------------------------------------------------------------
MOSTRAR EL NOMBRE Y APELLIDO DEL EMPLEADOS QUE ATENDIO EL MES DE ABRIL AL CLIENTE
OCN EL NOMBRE CARLOS PEREZ

SELECT
FROM EMPLEADOS E, CLIENTES C, VISITAS V
WHERE E.CED_EMP=V.CED_EMP_VIS
AND V.FEC_VIS BETWEEN 01/04/2018 AND 30/04/2018
AND V.CED_CLI=C.CED_CLI_VIS
AND C.NOM_CLI='CARLOS'
AND C.APE_CLI='PEREZ'

-----------------------------------------------------------------------------------

MOSTRAR EL NOMBRE Y APELLIDO DE LOS ESTUDIANTES QUE PERTENECEN A LA


CARRERA CON EL NOMBRE SISTEMAS

SELECT
FROM ESTUDIANTES E, CARRERAS C, CURSOS CU,
WHERE C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CUR_PER=E.COD_CUR_PER
AND C.NOM_CAR='SISTEMAS';

-------------------------------------------------------------------------
MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFICINA A LA QUE PERTENECE EL EMPLEADO
QUE ATENDIO AL CLIENTE CON CEDULA
2002. MOSTRAR ADEMAS LA FECHA DE LA ATENCION

SELECT
FROM OFICINAS O, EMPLEADOS E, VISITAS V
WHERE O.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP=V.CED_CLI_VIS
AND V.CED_CLI_VIS='2002';

-----------------------------------------------------------------------------------
---------------------

MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFCINA EN LA QUE TRABAJAEL EMPLEADO QIE


VISITO CON EL
MOTIVO MARKETING AL CLIENTE CON EL NOMBRE PAULINA.

SELECT
FROM OFICINAS O, EMPLEADOS E, VISITAS V, CLIENTES C
WHERE O.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP=V.CED_EMP_VIS
AND V.MOT_VIS='MARKETING'
AND V.CED_CLI=C.CED_CLI_VIS
AND C.NOM_CLI='PAULINA';

-----------------------------------------------------------------------------------
-------------------------------------------
MOSTRAR EL NOMBRE Y APELLIDO DE LOS EMPLEADOS QUE TRABAJAN EN LA OFICINA UBICADA EN
EL PISO 3.

SELECT
FROM EMPLEADOS E, OFICINCAS O
WHERE O.COD_OFI=E.COD_OFI_PER
AND O.PIS_UBI_OFI='3';

-----------------------------------------------------------------
MOSTRAR EL NOMBRE Y APELLIDO DEL CLIENTE QUE FUE VISITADO CON EL MOTIVO VENTA POR
EL
EMPLEADO RUTH RIOS

SELECT
FROM CLIENTES C, VISITAS V, EMPLEADOS E,
WHERE C.CED_CLI=V,CED_CLI_VIS
AND V.MOT_VIS='VENTAS'
AND V.CED_EMP_VIS=E.CED_EMP
AND E.NOM_EMP='RUTH'
AND E.APE_EMP='RIOS';
-----------------------------------------------------------------------------------
--

MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFCINA EN LA QUE TRABAJAEL EMPLEADO QIE


VISITO CON EL
MOTIVO MARKETING AL CLIENTE CON EL NOMBRE PAULINA.

SELECT
FROM OFICINAS O, EMPLEADOS E, VISITAS V, CLINETES C,
WHERE C.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP=V.CED_EMP_VIS
AND V.MOT_VIS='MARKETING'
AND V.CED_CLI_VIS=C.CED_CLI
AND C.NOM_CLI='PAULIA';

-------------------------------------------------------------
MOSTRAR EL NOMBRE Y PISO DE UBICACION DE LA OFICINA A LA QUE PERTENECE EL EMPLEADO
QUE ATENDIO AL CLIENTE CON CEDULA

SELECT
FROM OFICINAS O, EMPLEADOS E, VISITAS V, CLIENTES C
WHERE C.COD_OFI=E.COD_OFI_PER
AND E.CED_EMP=V.CED_EMP_VIS
AND V.CED_CLI_VIS=C.CED_CLI
AND C.CED_CLI='2002';

-----------------------------------------------------------------------------------
----------------------

MOSTRAR EL NOMBRE Y LA DESCRIPCION DE LA CARRERA A LA QUE PERTENECE


EL CURSO EN EL QUE ESTA EL ESTUDIANTE AL QUE SE LE PRESTO EL LBRO CON EL
CODIGO L01
SELECT
FROM CARREAS C, CURSOS CU, ESTUDIANTES E, PRESTAMOS P, LIBROS L
WHERE C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CAR=E.COD_CAR_PER
AND E.CED_EST=P.CED_EST_PRES
AND L.COD_LIB=E.COD_LIB_PER
AND L.COD_LIB='L01';

---------------------------------------------------------------

MOSTRAR EL NOMBRE Y APELLIDO DE LOS ESTUDIANTES QUE PERTENECEN A LA


CARRERA CON EL NOMBRE SISTEMAS

SELECT
FROM ESTUDIANTES E, CARRERAS C, CURSOS CU
WHERE C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CUR=E.COD_CUR_PER
AND C.NOM_CAR='SISTEMAS';

------------------------------------------------------------------------

MOSTRAR EL NOMBRE Y EL APELLIDO DE LOS ESTUDIANTES QUE SI SACARON


PRESTAMOS EN MAYO PERO NO SACARON PRESTAMOS EN ABRIL

SELECT
FROM ESTUDIANTES E, PRESTAMOS P
WHERE E.COD_PRE=P.COD_PRES_PER
AND P.FEC_PRES BETWEEN '01/5/2018' AND 30/05/2018
AND E.CED_EST NOT IN (SELECT CED_EST_PRES
FROM PRESTAMOS
WHERE FEC_PRES BETWEEN '01/4/2018' AND 30/04/2018)

-----------------------------------------------------------------------------------
----

MOSTRAR EL NOMRE DE LA CARRERA A LA QUE PERTENECE EL CURSO EN QUE


ESTAN LOS ESTUDIANTES QUE NO HAN SOLICITADO LIBROS PRESTADOS
DURANTE LOS ULTIMOS DOS MESES

SELECT
FROM CARRERAS C, CURSOS CU, ESTUDIANTES E, LIBROS L, PRESTAMOS P
WHERE C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CUR=E.COD_CUR_PER
AND E.CED_EST NOT IN(SELECT CED_EST_PRES
FROM PRESTAMOS
WHERE FEC_PRES BETWEEM 28/05/2018 AND 28/07/2018);

-----------------------------------------------------------------------------------
------------
ACTUALIZAR A LA NUEVA DIRECCION MIRAFLORES AL ESTUDIANTE CUYO
PROMEDIO ES MAYOIR QUE EL PROMEDIO DEL 1808

UPDATE ESTUDIANTES
SET DIR_EST='MIRAFLORES'
WHERE PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE CED_EST='1808');
------------------------------------------------
ACTUALIZAR LA FECHA DE NACIMIENTO DEL ESTUDIANTE QUE TIENE PROMEDIO
MAYOR AL PROMEDIO DEL ESTUDIANTE CON CEDULA 1804, PARA QUE TENGA
LA MISMA FECHA DE NACIMIENTO QUE EL ESTUDIANTE 1808

UPDATE ESTUDIANTES
SET FEC_NAC=(SELECT FEC_NAC
FROM ESTUDIATES
WHERE CED_EST='1808')
WHERE PROM_EST>(SELECT PROM_EST
FROM ESTUDIANTES
WHERE CED_EST='1804');

-----------------------------------------------------------------------------------
--------------------

CREAR LA TABLA APROBADOS CON LA CEDULA NOMBRE APELLIDO Y PROMEDIO


DE LOS ESTUDIANTES CON EL PROMEDIO MAYOR O IGUAL A 7

CREATE TABLE APROBADOS


AS
SELECT CED_EST, APE_EST, PROM_EST
FROM ESTUDIANTES
WHERE PROM_EST>=7;
--------------------------------------------------------------------------------

CREAR TABLA DE REPROBADOS CON CED, NOM, APE, CEL Y PROM DE LOS
ESTUDIANTES CON PROMEDIO>7

CREATE TABLE REPROBADOS


(
CED_EST VARCHAR(10) PRIMARY KEY,
NOM_EST VARCHAR(20),
APE_EST VARCHAR(20),
CEL_EST NUMBER,
PROM_EST NUMBER
)

INSERT INTO REPROBADOS


SELECT CED_EST, NOM_EST, APE_EST, CEL_EST, PROM_EST
FROM ESTUDIANTES
WHERE PROM_EST>7;
----------------------------------------------------

MOSTRAR EL NOM, APE Y CEL DEL ESTUDIANTE DE LA CARRERA DE SISTEMAS


QUE PIDIO EL LIBRO CON EL NOMBRE JAVA LA 1RA SEMANA DE ABRIL Y LO
DEVOLVIO LA ULTIMA SEMANA DE ABRIL

SELECT
FROM ESTUDIANTES E, CARRERAS C, CURSOS CU, LIBROS L, PRESTAMOS P
WHERE C.COD_CAR=CU.COD_CAR_PER
AND CU.COD_CUR=E.COD_CUR_PER
AND E.CED_EST=P.CED_EST_PRES
AND C.NOM_CAR='SISTEMAS'
AND P.COD_LIB=L.COD_LIB_PRES
AND L.NOM_LIB='JAVA'
AND P.FEC_PRES BETWEEN '01/04/2018' AND 07/04/2018
AND P.FEC_DEV BETWEEN '24/04/2018' AND 30/04/2018
-------------------------------------------------------------------------------

MOSTRAR EL NOMBRE Y APELLIDO DEL EMPLEADOS QUE ATENDIO EL MES DE ABRIL AL CLIENTE
OCN EL NOMBRE CARLOS PEREZ
SELECT
FROM EMPLEADOS E, VISITAS V, CLIENTES C
WHERE E.CED_EMP=V.CED_EMP_VIS
AND V.CED_CLI_VIS=C.CED_CLI
AND V.FEC_VIS BETWEEN '01/04/2018' AND 07/04/2018
AND C.NOM_CLI='CARLOS'
AND C.APE_CLI='PEREZ'

-----------------------------------------------------------------------------------
-------------------

Mostrar el nombre y piso de ubicacion del departamento al que peetenece el empleado


que atendio en el mes de mayo al cliente cuyo nombre tiene una letra A en cualquier
parte

SELECT
FROM DEPARTAMENTOS D, EMPLEADOS E, VISITAS V, CLIENTES C,
WHERE D.COD_DEP=E.COD_DEP_PER
AND E.CED_EMP=V.CED_EMP_VIS
AND V.FEC_VIS BETWEEN '01/04/2018' AND 07/04/2018
AND V.CED_CLI_VIS=C.CED_CLI
AND C.NOM_CLI LIKE '%A%';

-----------------------------------------------------------------------------------
------------

Mostrar el codigo, nombre , descipcion del departamento al que pertenece el


empleado que si realizao visitas al cliente con el apellido PEREZ durante el mes de
abril
con el motivo cobranza pero no visito al cliente con el apellido SORIA durante el
mes de FEBRERO con el motivo PUBLICIDAD

SELECT
FROM DEPARTAMENTOS D, EMPLEADOS E, VISITAS V, CLIENTES C
WHERE D.COD_DEP = E.COD_DEP_PER
AND E.CED_EMP= V.CED_EMP_VIS
AND V.CED_CLI=C.CED_CLI_VIS
AND V.FEC_VIS BETWEEN '01/04/2018' AND 07/04/2018
AND C.APE_CLI='PEREZ'
AND V.MOT_VIS='COBRANZA'
AND C.CED_CLI NOT IN (SELECT CED_CLI_VIS
FROM VISITAS

AND FEC_VIS BETWEEN '01/04/2018' AND 07/04/2018


AND MOT VIS='PUBLICIDAD'
AND CED_CLI_VIS=(SELECT CED_CLI
FROM CLIENTES
WHERE APE_CLI='SORIA'));
-----------------------------------------------------------------------------------
----------------

Mostrar nombre y apellido del empleado mas joven de la empresa , y el nombre y


apellido el clientes visitados por el, y el motivo de la visita

SELECT
FROM EMPLEADOS E, CLIENTES C, VISITAS V,
WHERE E.CED_EMP=V.CED_EMP_VIS
AND V.CED_CLI_VIS=C.CED_CLI
AND E.CED_EMP = (E.CED_EMP_VIS
FROM EMPLEADOS
WHERE (SYDATE-FEC_NAC_EMP)/365=(SELECT MIN((SYDATE-FEC_NAC_EMP)/365)
FROM EMPLEADOS));
-----------------------------------------------------------------------------------
----------------------

Mostrar el nombre, y apellido del cliente que fue atendido por 1 empleado(el mismo)
del departamento de ventas mas de 2 veces

SELECT
FROM CLIENTES C, VISITAS V, EMPLEADOS E, DEPARTAMENTOS D,
WHERE C.CED_CLI=V.CED_CLI_VIS
AND V.CED_EMP_VIS=E.CED_EMP
AND E.COD_DEP_=D.COD_DEP_PER
AND D.NOM_DEP='VENTAS'
AND V.ID_VIS>2;

-----------------------------------------------------------------------------------
----------
ACTUALIZAR AL CLIENTE 2001 PARA QUE TENGA LA MISMA DIRECION QUE EL CLIENTE 2005

UPDATE CLIENTES
SET DIR_CLI=(SELECT DIR_CLI
FROM CLIENTES
WHERE CED_CLI=2005)
WHERE CED_CLI='2001';

-----------------------------------------------------------------------------------

ACTUALIZAR LA DIRECCION DEL EMPLEADO Q GANA MAS QUE EL EMPLEADO CON CEDULA 1805,
PARA Q VIVA EN LA MISMA DIRECCION QUE EL EMPLEADO CON CEDULA 1803

UPDATE EMPLEADOS
SET DIR_EMP=(SELECT DIR_EMP
FROM EMPLEADOS
WHERE CED_EMP='1803')
WHERE SUE_EMP>(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805');

-----------------------------------------------------------------------------------
-------------------------

ACTUALIZAR CON LA NUEVA COMISION 78 DOLARES A LOS EMPLEADOS CON UNA ANTIGUEDAD
MAYOR A LA ANTIGUDAD EL EMPLEADO 1801

UPDATE EMPLEADOS
SET COMI_EMP=78
WHERE CED_EMP=(SELECT CED_EMP
FROM EMPLEADOS
WHERE (SYSDATE-FEC_ING_EMP)/365>(SELECT (SYSDATE-FEC_ING_EMP)/365
FROM EMPLEADOS
WHERE CED_EMP='1801'));

-------------------------------------------------------------------
ACTUALIZAR CON LA DIRECCION DEL CLIENTE 2003 A LOS EMPLEADOS Q GANEN MAS DE 1000
DOLARES

UPDATE CLIENTES
SET DIR_CLI=(SELECT DIR_CLI
FROM CLIENTES
WHERE CED_CLI=2003)
WHERE SUE_EMP>1000;

-----------------------------------------------------------------------------------

ACTUALIZAR CON LA COMISION 99 DOLARES A LOS EMPLEADOS QUE HAN REALZIADO MAS DE 2
VISITAS DURANTE EL MES DE MAYO

UPDATE EMPLEADOS
SET COMI_EMP=99
WHERE CED_EMP=(SELECT CED_EMP_VIS
FROM VISITAS
WHERE FEC_VIS BETWEEN '01/04/2018' AND 07/04/2018
GROUP BY CED_EMP_VIS
HAVING COUNT(ID_VIS)>2 )

-----------------------------------------------------------------------------------
-----------

ACTUALIZAR AL EMPLEADO Q HA VISITADO MAS DE 3 VECES AL CLIENTE CON EL APELLIDO MERA


, PARA QUE TENGA UNA COMISION EQUIVALENTE AL 10% DEL SUELDO DEL GERENTE

UPDATE EMPLEADOS
SET COMI_EMP =(SELECT COMI_EMP*0,1
FROM EMPLEADOS
WHERE CAR_EMP='GERENTE')

WHERE CED_EMP =(SELECT CED_EMP_VIS


FROM VISITAS
WHERE CED_CLI=(SELECT CED_CLI
FROM CLIENTES
WHERE APE_CLI='MERA'

GROUP BY CED_EMP_VIS
HAVING COUNT(ID_VIS)>3);

-----------------------------------------------------------------------------------
-------------

ACTUALIZAR EL TELEFONO DEL EMPELADO 1801 AL NUEVO VALOR '099111222' Y LA DIRECCION


DEL EMPLEADO 1801 ALNUEVO VALOR BANOS

UPDATE EMPLEADOS
SET TEL_EMP ='099111222',
DIR_EMP='BA�OS'
WHERE CED_EMP='1801';

-----------------------------------------------------------------------------------

ELIMINAR AL EMPLEADO QUE GANA MAS QUE EL EMPLEADO CON CEDULA 1805, PERO QUE GANA
MENOS Q EL EMPLEADO CON CEDULA 1801
DELETE FROM EMPLEADOS
WHERE SUE_EMP>(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1805')
AND SUE_EMP<(SELECT SUE_EMP
FROM EMPLEADOS
WHERE CED_EMP='1801'));

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy