You are on page 1of 6

PRACTICO 4 SQL SOLUTION

diciembre 6, 2008estebanfuentealbaDejar un comentario

Prctica Leccin 4 Desplegando Datos de Mltiples Tablas 1.- Escriba una consulta que despliegue el apellido, nmero y nombre del departamento para todos los empleados 1 2 3
SELECT e.last_name, d.departament_id, d.departament_name FROM employees e, departaments d WHERE e.departament_id = d.departament_id;

2.- Crear una nica lista de todos los identificadores de los cargos que estn en el departamento 80. Incluir la localizacin del departamento en la salida 1 2 3 4
SELECT e.job_id , l.location_name FROM employees e, locations l, departaments d WHERE e.departament_id = d.departament_id AND d.location_id = l.location_id AND e.departament_id = 80;

3.- Escribir una consulta que despliegue el apellido del empleado, nombre del departamento, localizacin y ciudad de todos los empleados que ganan comisin 1 2 3 4
SELECT e.last_name, d.departament_name, l.location_id, l.city FROM employees e, departaments d , locations l WHERE e.departament_id = d.departament_id AND d.location_id = l.location_id AND commission_pct IS NOT NULL;

4.- Desplegar el apellido del empleado y nombre del departamento para todos los empleados que tienen una a minscula en su apellido. Escribir tu sentencia SQL en un archivo de texto llamado lab4_4.sql 1 2 3 4
SELECT e.last_name, d.departament_name FROM employees e, departaments d WHERE e.departament_id = d.departament_id AND e.last_name LIKE '%a%';

5.- Escribir una consulta que despliegue el apellido, cargo, nmero y nombre de departamento para todos los empleados que trabajan en Toronto 1 2 3
SELECT e.last_name, e.job_id, d.departament_id, d.departament_name FROM employees e, departaments d, locations l WHERE e.departament_id = d.departament_id AND d.location_id = l.location_id

AND LOWER(l.city) = LOWER('Toronto');

6.- Desplegar el apellido y nmero del empleado con el apellido de su administrador y nmero de este. Etiquetar las columnas como Empleado, Emp#, Administrador y Mgr#, respectivamente. Escribir tu sentencia SQL en un archivo de texto llamado lab4_6.sql 1 2 3

SELECT e.last_name AS "Empleado" , e.employee_id AS "Emp#", a.last_name AS "Administr a.manager_id AS "Mgr#" FROM employees e, managers a WHERE e.manager_id = a.manager_id;

Categoras:SQLEtiquetas:Practicos SQL, Solutions, SQL

PRACTICO 3 SQL SOLUTION


diciembre 6, 2008estebanfuentealba1 comentario

Prctica 3 Funciones sobre Filas 1.- Para cada empleado, desplegar el apellido, y calcular el nmero de meses entre la fecha actual y la fecha de contrato. Etiquetar la columna como MESES TRABAJADOS. Ordenar la consulta por el nmero de meses trabajados. Redondear el nmero de meses hasta el entero ms cercano. 1 2 3
SELECT last_name, ROUND(MONTHS_BEETWEEN(SYSDATE, hire_date),0) AS MESES TRABAJADOS FROM employees ORDER BY ROUND(MONTHS_BEETWEEN(SYSDATE, hire_date),0);

2.- Escribe una consulta que despliegue lo siguiente para cada empleado <apellido del empleado> recibe <salario> mensualmente, pero quiere recibir <tres veces su salario>. Etiqueta la columna como SALARIO SOADO 1 2
SELECT last_name || ' recibe ' || "SALARIO SOADO" FROM employees;

salary || ' mensualmente, pero quiere recibir ' |

3.- Escriba una consulta que despliegue el apellido, y el salario para todos los empleados. El formato de salario debe ser de 15 caracteres de largo, completar con el comodn $ a la izquierda. Etiquetar la columna como SALARIO. 1 2
SELECT last_name, LPAD(salary,15,'$') AS "SALARIO" FROM employees;

4.- Desplegar para cada empleado el apellido, la fecha de contrato, y la fecha de revisin de salario, con el primer lunes despus de seis meses de servicio. Etiquetar la columna como REVISION. El formato de la fecha debe ser similar a Monday, the Thirty-First of July, 2000 1 2

SELECT last_name, hire_date, TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date,6),'MONDAY'), 'f YYYY') AS "REVISION" FROM employees;

5.- Desplegar el apellido, la fecha de contrato, y el da de la semana en que el empleado inicio su empleo. Etiquetar la columna como DIA.Ordena el resultado por el da de la semana iniciado con el lunes. 1 2 3
SELECT last_name, hire_date, TO_CHAR(hire_date,'DAY') AS "DIA" FROM employees ORDER BY TO_CHAR(hire_date - 1 ,'d');

6.- Crear una consulta que despliegue el apellido del empleado y comisin. Si el empleado no gana comisin, desplegar Sin Comisin Etiquetar la columna como COMM 1 2
SELECT last_name, NVL(TO_CHAR(commission_pct),'Sin Comisin') AS "COMM" FROM employees;

7.- Crear una consulta que despliegue el apellido del empleado, y la cantidad anual de su salario con asteriscos. Cada asterisco significa miles de dlares. Ordenar los datos descendentemente por salario. Etiquetar la columna como EMPLEADO Y SU SALARIO 1 2
SELECT last_name, RPAD(' ' , salary/1000+1,'*') FROM employees;

8.- Usando la funcin DECODE, escribir una consulta que despliegue el grado de todos los empleados basados en los valores de la columna CARGO_ID, como se muestra a continuacin: CARGO GRADO AD_PRES A ST_MAN B IT_PROG C SA_REP D ST_CLERK E Ninguno de los anteriores 0 1 2 3 4 5 6 7 8 9
SELECT CARGO_ID, DECODE( 'AD_PRES','A', 'ST_MAN','B', 'IT_PROG','C', 'SA_REP','D', 'ST_CLERK','E', '0' ) FROM employees;

8.- Reescribe la consulta anterior utilizando la clusula CASE. 1 2 3 4 5 6 7 8


Categoras:SQLEtiquetas:Practicos SQL, Solutions, SQL

SELECT CARGO_ID , CASE CARGO_ID WHEN 'AD_PRES' THEN 'A' WHEN 'ST_MAN' THEN 'B' WHEN 'IT_PROG' THEN 'C' WHEN 'SA_REP' THEN 'D' WHEN 'ST_CLERK' THEN 'E' ELSE '0' FROM employees;

PRACTICO SQL 2 SOLUTION


diciembre 6, 2008estebanfuentealbaDejar un comentario

Prctica Leccin 2 Restringiendo y ordenando datos 1.- Crear una consulta que despliegue el last name y salary de los empleados que ganan ms de $12.000. Escribe tu sentencia SQL en un archivo de texto llamado lab2_1.sql. Ejecutar la consulta

1 2 3

SELECT last_name, salary FROM employees WHERE salary &gt; 12000;

2.- Crear una consulta que despliegue el last_name del empleado y department number para cada nmero de empleado 176

1 2 3

SELECT last_name , department_number FROM employees WHERE employee_id = 176;

3.- Modificar lab2_1.sql para desplegar el last name y salary para todos los empleados cuyo salario no esta en el rango de $5.000 y $12.000. Escribe tu sentencia SQL en el texto del archivo nombrado

1 2 3

SELECT last_name, salary FROM employees WHERE salary NOT BEETWEEN 5000 AND 12000;

4.- Desplegar el last_name del empleado, job ID y start date de empleados cuya hired (fecha de empleo) est entre Febrero 20, 1998, y Mayo 1, 1998. Ordenar la consulta ascendentemente por start date

SELECT last_name, job_id, start_date

2 3 4

FROM employees WHERE hired BEETWEEN 20-FEB-1998 AND 1-MAY-1998 ORDER BY start_date ASC;

5.- Desplegar el last name y department number de todos los empleados del departamento 20 y 50, ordenar alfabticamente por name

1 2 3 4

SELECT last_name, departament_number FROM employees WHERE departament_number IN(20,50) ORDER BY last_name;

6.- Modificar lab2_3.sql para listar el last name y salary de empleados que ganan entre $5.000 y $12.000 y estn en el departamento 20 o 50. Etiquetar las columnas por employee y monthly salary, respectivamente. Regrabar lab2_3.sql como lab2_6.sql. Ejecutar la sentencia en lab2_6.sql

1 2 3 4

SELECT last_name AS employee, salary AS monthly salary FROM employees WHERE salary BETWEEN 5000 AND 12000 AND departament_id in (20,50);

7.- Desplegar el last name y el hire date de cada empleado que ha sido empleado en el ao 1994

1 2 3

SELECT last_name, hire_date FROM employees WHERE hire_date LIKE %94;

8.- Desplegar el last name y job title de todos los empleados que no tienen un administrador

1 2 3

SELECT last_name, job_id FROM employees WHERE manager_id IS NULL;

9.- Desplegar el last name, salary y commissions para todos los empleados que ganan comisiones. Ordenar datos descendentemente de salary y commisions

1 2 3 4

SELECT last_name, salary , FROM employees

commission_pct

WHERE commission_pct IS NOT NULL ORDER BY salary DESC ,commission_pct DESC;

10.- Desplegar los last name de todos los empleados donde la tercera letra del nombre es una a

1 2 3

SELECT last_name FROM employees WHERE last_name LIKE ___a%;

11.- Desplegar el last name de todos los empleados que tienen una a y una e en su last name

1 2 3

SELECT last_name FROM employees WHERE last_name LIKE %a% AND last_name LIKE %e%;

12 Desplegar el last name, job y salary para todos los empleados que tienen como job sales representative o stock clerk y cuyo salary no es igual al $2.500, $3.500 o $7.000

1 2 3 4

SELECT last_name, job_id, FROM employees

salary

WHERE job _sales in(SA_REP, ST_CLERK ) AND salary NOT in(2500,3500,7000);

13.- Modificar lab2_6.sql para desplegar el last name, salary y comisin para todos los empleados cuya comisin es un 20%. Regrabar lab2_6.sql como lab2_13.sql. Ejecutar la sentencia lab2_13.sql

1 2 3

SELECT last_name, FROM employees

salary, commission_pct

WHERE commission_pct = .20;

You might also like