Inicio > SQL > PRACTICO 3 SQL SOLUTION

PRACTICO 3 SQL SOLUTION

Práctica 3
Funciones sobre Filas

1.- Para cada empleado, desplegar el apellido, y calcular el número de meses entre la fecha actual y la fecha de contrato. Etiquetar la columna como “MESES TRABAJADOS”. Ordenar la consulta por el número de meses trabajados. Redondear el número de meses hasta el entero más cercano.

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 SOÑADO”

SELECT last_name || ' recibe ' ||  salary || ' mensualmente, pero quiere recibir ' || salary *3 AS "SALARIO SOÑADO"
FROM employees;

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 comodín $ a la izquierda. Etiquetar la columna como SALARIO.

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 revisión de salario, con el primer lunes después 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”

SELECT last_name, hire_date, TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date,6),'MONDAY'), 'fmDay , "the" Ddspth "of" Month, YYYY') AS "REVISION"
FROM employees;

5.- Desplegar el apellido, la fecha de contrato, y el día de la semana en que el empleado inicio su empleo. Etiquetar la columna como “DIA”.Ordena el resultado por el día de la semana iniciado con el lunes.

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 comisión. Si el empleado no gana comisión, desplegar “Sin Comisión” Etiquetar la columna como COMM

SELECT last_name, NVL(TO_CHAR(commission_pct),'Sin Comisión') 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 dólares. Ordenar los datos descendentemente por salario. Etiquetar la columna como “EMPLEADO Y SU SALARIO”

SELECT last_name, RPAD(' ' , salary/1000+1,'*')
FROM employees;

8.- Usando la función 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 continuación:

CARGO GRADO
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
Ninguno de los anteriores 0

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 cláusula CASE.

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;
Categorías:SQL Etiquetas: , ,
  1. juan carlos
    agosto 18, 2011 a las 11:47 pm

    Mil gracias por permitirme usar su informacion.
    señores he tratado de ejecutar la sentencia del ejercicio 4 pero me saca error.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: