ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Base de datos y Sentencias SQL


Enviado por   •  7 de Julio de 2022  •  Tareas  •  1.346 Palabras (6 Páginas)  •  384 Visitas

Página 1 de 6

/*a. Obtener todos los códigos de trabajo únicos (no repetidos) de la tabla Empleados*/

select distinct employee_id from employees;

/*b. Obtener una columna que almacene el nombre y apellido de los empleados cuyo

salario no esté en el rango de $10000 y $16000 que muestre el apellido, id del trabajo y fecha de

contratación de los empleados cuyos apellidos son Matos y Taylor. Ordenar el

resultado de forma descendente de acuerdo a la fecha de contratación*/

select first_name||' '||last_name as "NOMBRE COMPLETO", salary, job_id, hire_date from employees where last_name in('Matos','Taylor') and salary>10000 and salary<16000 order by hire_date desc;

/*c. Mostrar el apellido y el id del trabajo de los empleados que no tienen asignado un jefe.*/

select last_name, job_id from employees where manager_id is null;

/*d. Mostrar los apellidos de los empleados cuyos apellidos tengan como tercera letra

la “a” y también contengan la letra “e”*/

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

/*e. Mostrar el apellido, id del trabajo y salario de los empleados cuyo id del trabajo es

SALES REPRESENTATIVE (SA_REP) o STOCK CLERK (ST_CLERK) y cuyo salario no sea

igual a $2500, $3500, o $7000.*/

SELECT LAST_NAME, JOB_ID, SALARY FROM EMPLOYEES WHERE JOB_ID IN ('SA_REP', 'ST_CLERK') AND SALARY<>2500 AND SALARY<>3500 AND SALARY<>7000;

/*f. Obtener el id del empleado, apellido, salario y salario incrementado. Este último es

un campo calculado que es la suma del salario actual más el 15.5%. Etiquete esta

última columna como INCREMENTO.*/

SELECT EMPLOYEE_ID, LAST_NAME, SALARY, SALARY*0.155+SALARY AS INCREMENTO FROM hr.EMPLOYEES;

/*4. Utilizando SQL*PLUS realice las siguientes consultas por medio del uso de funciones de

agregado: */

/*a. Realice una consulta que muestre solo los nombres de los empleados que se

repiten.*/

SELECT FIRST_NAME, COUNT(*) FROM EMPLOYEES GROUP BY FIRST_NAME HAVING COUNT(*)>1;

/*b. Realice una consulta que muestre el número de países por región ordenando el

resultado por el número de región que tenga mayor número de países.*/

SELECT R.REGION_NAME AS "REGION", COUNT(*) AS "PAISES" FROM COUNTRIES C JOIN REGIONS R ON C.REGION_ID=R.REGION_ID GROUP BY R.REGION_NAME HAVING COUNT(*)>1 ORDER BY COUNT(*) DESC;

/*c. Elabore una consulta que muestre el código del departamento con título “Código

del Departamento”, que cuente los empleados por departamento de aquellos que

departamentos que tengan más de 10 empleados.

*/

SELECT DEPARTMENT_ID AS "CODIGO DE DEPARTAMENTO", COUNT(EMPLOYEE_ID) FROM EMPLOYEES GROUP BY DEPARTMENT_ID HAVING COUNT(EMPLOYEE_ID)>10;

/*d. Visualizar el id del jefe y el salario del empleado a su cargo que tenga el menor

ingreso. Excluir los empleados que no tengan asignado un jefe y todos los grupos

cuyo salario mínimo sea menor o igual a $6000. Ordenar la salida en orden

descendente.*/

SELECT DISTINCT MANAGER_ID, MIN(SALARY), COUNT(MANAGER_ID) FROM EMPLOYEES WHERE MANAGER_ID IS NOT NULL AND SALARY>6000 GROUP BY MANAGER_ID ORDER BY MANAGER_ID DESC;

/*5. Por medio del uso de funciones, realizar las siguientes consultas:*/

/*a. Obtener los nombres y apellidos de los empleados que fueron contratados en el

mes actual (No importa el año).*/

SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE EXTRACT(MONTH FROM HIRE_DATE)=11;

/*b. Supongamos que los empleados cuyo apellido es Jones y Fay han sido contratados

por 8 meses. Escriba una consulta que visualice la fecha de salida de la empresa de

dichos empleados. */

SELECT LAST_NAME, ADD_MONTHS(TO_DATE(HIRE_DATE,'DD/MM/YYYY'),8) AS "SALIDA" FROM EMPLOYEES WHERE LAST_NAME IN('Jones', 'Fay');

/*c. Obtener el apellido y número de días que están trabajando en la empresa los

empleados del departamento de Marketing que ganan más de $6000.*/

SELECT LAST_NAME, TRUNC(TO_DATE(SYSDATE,'DD/MM/YYYY'))-TRUNC(HIRE_DATE) AS "DIAS" FROM EMPLOYEES WHERE DEPARTMENT_ID=20 AND SALARY>6000;

/*d. Los empleados con id 101, 200 y 176 han desempeñado más de un cargo en la

empresa. Obtener el número de meses y el cargo que han desempeñado en la

empresa.*/

SELECT J.JOB_TITLE AS "CARGO", TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) AS "MESES" FROM EMPLOYEES E JOIN JOBS J ON J.JOB_ID=E.JOB_ID WHERE EMPLOYEE_ID IN (101,200,176);

/*e. Obtener el id del empleado, apellido, salario y salario incrementado. Este último es

un campo calculado que es la suma del salario actual más el 15.5%. Etiquete esta

última columna como NUEVO SALARIO. Además, obtenga una columna que

muestre el valor del incremento salarial que tenga el nombre de INCREMENTO. Las

columnas NUEVO SALARIO E INCREMENTOS no deben tener decimales.*/

SELECT EMPLOYEE_ID, LAST_NAME, SALARY, ROUND(SALARY+(SALARY*0.155)) AS "NUEVO SALARIO", ROUND(SALARY*0.155) AS "INCREMENTO" FROM

...

Descargar como (para miembros actualizados)  txt (10.2 Kb)   pdf (55.4 Kb)   docx (12.8 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com