Sunteți pe pagina 1din 5

INTEGRANTE

----------
OSCAR HUAYLLAS GALINDO

1 Crear una consulta que permita mostrar el apellido y salario de los empleados
que ganan m�s de 12 000 y menos que 23 500

select last_name, salary


from employees
where salary BETWEEN 12000 AND 23500;

2 Crear una consulta que permita mostrar el apellido y el n�mero y nombre de


departamento del empleado No. 176

select e.last_name, e.phone_number, d.department_name


from employees e, departments d
where employee_id = 176 and e.department_id = d.department_id;

3 Crear una consulta que permita mostrar el apellido y salario de los empleados que
su salario no est� en el rango de 5000 y 12 000

SELECT LAST_NAME APELLIDOS, SALARY SUELDOS


from EMPLOYEES
where SALARY not between 5000 and 12000 ;

4 Crear una consulta que permita mostrar el apellido, el c�digo de trabajo


(job_id), de los empleados que empezaron a laborar entre el 20 de febrero de 2003 y
el 1 de mayo de 2005, ord�nelo de forma ascendente por fecha
from employees

where hire_date between '20/02/2003' and '1/05/2006'


order by hire_date;

5 Crear una consulta que permita mostrar el apellido y el n�mero de departamento de


los empleados de los departamentos 20 y 50, en orden alfab�tico.

select e.last_name, e.department_id


from employees e
where e.department_id= 20 or e.department_id=50
order by last_name asc;

6 Muestre el apellido y la comisi�n (en soles) de los empleados; cuyos salarios se


encuentren entre 5000 y 12 000 y adem�s pertenezcan a los departamentos 20, 10 y 80

select e.last_name, e.commission_pct


from employees e, departments d
where e.salary>5000 and e.salary<12000 and e.department_id = d.department_id and
(d.department_id =20 or d.department_id = 10 or d.department_id = 80);

7 Muestre el nombre y apellido en una sola columna llamada nombre_completo y la


fecha de contrataci�n de los empleados que entraron en el a�o 2004.

SELECT first_name||' '||last_name "Nombres Completos", HIRE_DATE "Fecha de


Contrato"
FROM employees
WHERE hire_date LIKE '%04';

8 Muestre el nombre y el c�digo de trabajo de todos los empleados que no tienen un


supervisor (manager_id)
select first_name NOMBRE , employee_id Codigo
from employees
where manager_id is null ;

9 Muestre el apellido, salario y las comisiones de todos los empleados que ganan
comisi�n, ord�nelo de forma descendente los 2 campos

select last_name, salary, commission_pct


from employees
where commission_pct is not null
order by commission_pct , salary desc;

10 Muestre el apellido de los empleados que tengan como tercera letra una a.
select e.last_name
from employees e
where instr(e.last_name,'a')=3;

11 Muestre el apellido de los empleados que tengan una a y una e en su apellido


SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE '%a%' AND LAST_NAME LIKE '%e%';

12 Muestre el apellido, c�digo de trabajo y salario de los empleados que laboran


como Sales representative (SA_REP) o Stock clerk (ST_CLERK) y que su salario no sea
igual a 2500, 3000 o 7000.
select last_name,job_id,salary
from employees
where salary not in (2500,3500,7000) and job_id in ('SA_REP','ST_CLERK');

13. Construya una vista llamada sueldo_empleado que permita visualizar el c�digo,
nombre completo concatenado con el alias Nombre_completo a dicha columna, el sueldo
total (incluyendo el porcentaje de su comision), solo para los empleados que tienen
m�s de 5 a�os en la empresa.
create view sueldo_empleado as
select concat(employee_id,concat(first_name, last_name)) as nombre_completo,(salary
+ salary*commission_pct/100) as salario_total from employees
where ceil(months_between(sysdate,employees.hire_date)) > 60;

14. Construya una vista llamada datos_empleado que permita mostrar el c�digo,
nombre completo, correo electr�nico, cargo, nombre del departamento y nombre del
jefe de todos los empleados que fueron contratados en el mes actual.
CREATE view datos_empleado as
select e.employee_id, (e.last_name||' '||e.first_name) as nombre, e.email as
correo, j.job_title as cargo, d.department_name as departamento, (jefe.last_name||'
'||jefe.first_name) as Jefe
from employees e, departments d,jobs j,employees jefe
where e.manager_id=jefe.employee_id and e.department_id = d.department_id and
TO_CHAR(e.hire_date, 'MON') = 'JUN';
select *from datos_empleado;

15 Construya una vista llamada proyecci�n que permita visualizar el c�digo,


apellido, monto a recibir mensual y el monto a percibir en el a�o para todos los
empleados que son manager en la empresa.

CREATE VIEW PROYECCION as


SELECT DISTINCT e2.employee_id, e1.last_name, (e2.salary +
e2.salary*commission_pct/100) AS MENSUAL,
(e2.salary + e2.salary*commission_pct*12/100) AS ANUAL
FROM EMPLOYEES e1 INNER JOIN EMPLOYEES e2
ON e1.manager_id = e2.employee_id;

16 Muestre la estructura de la tabla DEPARTMENTS. Seleccione todos los datos de la


tabla para los departamentos que est�n localizados en la regi�n Americas.
select d.department_id, d.department_name, d.manager_id,
d.location_id
from departments d, locations l, countries co , regions re
where d.location_id = l.location_id and
l.country_id = co.country_id and
co.region_id = re.region_id and re.region_name='Americas'
order by d.department_id asc;

17 Muestre la estructura de la tabla EMPLOYEES. Cree una consulta para mostrar el


apellido, el c�digo de cargo, la fecha de contrataci�n y el n�mero de empleado para
cada empleado, con el n�mero de empleado en primer lugar.

select * from employees;


select e.employee_id ,e.last_name,e.hire_Date ,e.job_id
from employees e

18. Cree una consulta para mostrar los c�digos de cargo que existen en la tabla
EMPLOYEES.
select e.job_id
from employees e
where e.job_id <>'null';

19. Muestre el apellido concatenado con el identificador de cargo, separados por


una coma y un espacio y llame a la columna Titulo_empleado.

SELECT concat(concat(LAST_NAME,' , '),JOB_ID)


FROM EMPLOYEES;

20 Mostrar los nombres y la primera inicial del apellido para todos los empleados
que trabajan en el c�digo del departamento 100.
SELECT first_name,SUBSTR(last_name,0,1)
FROM employees
WHERE department_id= 100;

21 Mostrar los apellidos y el nombre del mes que fue contratado los empleados del
c�digo del departamento 30. Rotule esta �ltima columna como MES_CONTRATO.

SELECT LAST_NAME APELLIDOS, TO_CHAR(HIRE_DATE,'MONTH') "MES CONTRATO"


FROM EMPLOYEES WHERE DEPARTMENT_ID = 30;

22 Muestre las primeras cinco letras del nombre del departamento en may�sculas para
la tabla departments.
select SUBSTR(UPPER(d.department_name),1,5)
from departments d;

23 Mostrar el nombre, fecha de contrataci�n y el n�mero de d�as trabajados.


SELECT FIRST_NAME NOMBRE, HIRE_DATE FECHA_CONTRATO, TRUNC(SYSDATE - HIRE_DATE,0)
FROM EMPLOYEES;

24 Mostrar el nombre y la fecha de contrato para todos los empleados en el


siguiente formato: �dd de mes de aaaa�, rotule esta columna con el nombre de
FECHA_CONTRATO. Ejemplo: 17 de Junio de 1987.
SELECT first_name, TO_CHAR(hire_date,'DD "de " month " de " YYYY') as
FECHA_DE_CONTRATO/*CORREGIR*/
FROM employees;
25 Mostrar el nombre, fecha de contrataci�n y la fecha del primer chequeo m�dico,
sabiendo que este se realiza cada seis meses, para los empleados con c�digo de
departamento 60.

select e.first_name, e.hire_date,add_months(hire_date,6)


from employees e
where department_id=60;

26 Muestre una consulta donde se liste el apellido de los empleados su sueldo, la


comisi�n expresada en soles a recibir y un mensaje a los que no ganan comisi�n.
select e.last_name, e.salary, e.commission_pct, ('') as mensaje
from employees e, departments d
where when e.commission_pct < 0 then mensaje = 'Sin comision' end;

27 Construya una sentencia que te permita obtener los nombre de todos los empleados
y un campo que indique es manager o no es manager

28 Construya una sentencia que te permita obtener los nombres de todos los
empleados que no ganan comisi�n y adem�s no pertenecen al departamento 50 ni 80
SELECT first_name,last_name,department_id FROM employees
where commission_pct is null and department_id<>80 and department_id<>50;
29 Construya una sentencia que te permita obtener los datos completos de todos los
empleados que ganan comisi�n, no son jefes y adem�s tienen m�s de 8 a�os en la
empresa.

select e.employee_id ,e.first_name,e.last_name, e.email, e.phone_number,


e.hire_date, e.job_id, e.salary, e.commission_pct, e.manager_id, e.department_id
FROM EMPLOYEES e, EMPLOYEES e2
WHERE COMMISSION_PCT is not null AND e.MANAGER_ID <> e1.EMPLOYEE_ID AND
floor(months_between(sysdate,hire_date)/12))>8;
30. Construya una sentencia que muestre lo siguiente para cualquier empleado

C�digo Empleado Nombre_jefe


123 juan Perez Luis Casas

select e.employee_id as Codigo, (e.first_name||' '||e.last_name) as Empleado,


(jefe.last_name||' '||jefe.first_name) as Nombre_jefe
from employees e, employees jefe
where jefe.employee_id = e.manager_id;

31. Para cada empleado, visualice su n�mero, apellido, salario y salario


incrementado en el 15 % y expresado como n�mero entero. Etiquete la columna como
New Salary.
SELECT EMPLOYEE_ID NUMERO, LAST_NAME APELLIDO, SALARY SALARIO, ROUND(SALARY*1.15)
"NEW SALARY"
FROM EMPLOYEES;

32. Escriba una consulta que muestre los apellidos de los empleados con la primera
letra en may�sculas y todas las dem�s en min�sculas, as� como la longitud de los
nombres, para todos los empleados cuyos nombres comienzan por J, A o M. Asigne a
cada columna la etiqueta correspondiente. Ordene los resultados seg�n los apellidos
de los empleados.
select INITCAP(last_name) "Last name", LENGTH(first_name) "Last name length"
from employees
where last_name like 'A%'
or last_name like 'J%'
or last_name like 'M%' order by last_name asc;
33. Para cada empleado, muestre su apellido y calcule el n�mero de meses entre el
d�a de hoy y la fecha de contrataci�n. Etiquete la columna como MONTHS_WORKED.
Ordene los resultados seg�n el n�mero de meses trabajados. Redondee el n�mero de
meses hacia arriba hasta el n�mero entero m�s pr�ximo

SELECT LAST_NAME APELLIDO, CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) "MONTHS WORKED"


FROM EMPLOYEES
ORDER BY CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE));

34. Muestre el apellido de cada empleado, as� como la fecha de contrataci�n y la


fecha de revisi�n de salario, que es el primer lunes despu�s de cada seis meses de
servicio. Etiquete la columna REVIEW. Formatee las fechas para que aparezca en un
formato similar a �Monday, the Thirty-First of July, 2000�.
select e.last_name, e.hire_date, to_char(e.hire_date+180, '"MONDAY," "the" ddspth
"of" Month"," YYYY') as REVIEW
from employees e;

35. Muestre el apellido, la fecha de contrataci�n y el d�a de la semana en el que


comenz� el empleado. Etiquete la columna DAY. Ordene los resultados por d�a de la
semana, comenzando por el lunes.
SELECT LAST_NAME APELLIDO, HIRE_DATE FECHA, TO_CHAR (HIRE_DATE, 'DAY') "DAY"
FROM EMPLOYEES
ORDER BY TO_CHAR(HIRE_DATE, 'DAY');

36. Cree una consulta que muestre el apellido y las comisiones de los empleados. Si
un empleado no gana comisi�n, ponga �No Commission�. Etiquete la columna COMM.
SELECT LAST_NAME, NVL2(COMMISSION_PCT,TO_CHAR(COMMISSION_PCT), 'No commission')
"COMM" from employees;
37. Utilizando la funci�n DECODE O CASE, escriba una consulta que muestre el grado
de todos los empleados bas�ndose en el valor de la columna JOB_ID, seg�n los datos
siguientes:
Cargo Grado
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
Ninguno de los anteriores 0
SELECT EMPLOYEE_ID CODIGO, LAST_NAME APELLIDO,
DECODE( JOB_ID,'AD_PRES','A','ST_MAN','B','IT_PROG', 'C','SA_REP',
'D','ST_CLERK','E','0')GRADO
FROM EMPLOYEES;

S-ar putea să vă placă și