miércoles, 25 de septiembre de 2013

/*1) ¿Cuántos cargos distintos existen en la tabla Empleado?*/
select count(distinct numempleado), nombre
from empleado
order by cargo;

/*2) Desarrolle una consulta SQL que liste los empleados, mujeres con un sueldo
(salario) superior o igual a 100000 y menor o igual a120000, y que tengan
menos de 30 años. (Mostrar NumEmpleado, Nombre Completo (Nombre y
Apellido), Salario, Fecha de Nacimiento (FechNac) y Edad)*/
select nombre||' '||apellido as nombre_completo
, salario
,fechnac as fecha nacimiento
, edad (sysdate - fechnac) /365
from empleado
where salario between 100000 and 120000
and sexo = 'M'
group by numempleado, nombre_completo, fecha_nacimiento, edad
order by numempleado, nombre_completo, fecha_nacimiento, edad;

/*3) Listar los clientes que viven en London (5 Pts)*/
select numCliente, nombre
from cliente
where direccion like '%london%';


/*4) Listar los empleados ordenados en forma descendente por cargo y en forma
ascendente por Salario*/
select numempleado, nombre, cargo, salario
from empleado
order by cargo desc, salario;


/*5) ¿Cuántas propiedades cuestan más de 350 por mes de alquiler?*/
select count(*)
from propiedad
where renta >350;


/*6) Para cada oficina con más de 2 empleados, indicar el número de empleados
en cada oficina y la suma de sus sueldos*/
SELECT numOficina,
COUNT(numEmpleado) AS myCount,
SUM(salario) AS mySum
FROM Empleado
GROUP BY numOficina
HAVING COUNT(numEmpleado) > 2
ORDER BY numOficina;

/*7)Utilizando sub consultas, listar los empleados (numEmpleado, nombre,
apellido, cargo) que trabajan en la oficina ubicada en ‘Costanera 25’*/
SELECT numEmpleado, nombre, apellido, cargo
FROM Empleado
WHERE numOficina = (SELECT numOficina
FROM Oficina
WHERE calle = 'Costanera 25');


/*8) Listar a todos los empleados hombres cuyo sueldo sea mayor que el de todas
las mujeres.*/

SELECT numEmpleado, nombre, apellido, cargo, salario
FROM Empleado
WHERE salario > ALL (SELECT salario
FROM Empleado
WHERE sexo = 'F');

miércoles, 4 de septiembre de 2013

Ejercicio 01 - Para Control 01

/**Listar los cargos de los empleados que
trabajan en oficinas ubicadas en Santiago*/

select nombre, apellido, cargo,  o.ciudad
from empleado e
join oficina o
on e.numoficina= o.numoficina
where lower(o.ciudad) = 'santiago'
order by cargo;

/**Mostrar los nombre de los empleados que trabajan
en Aberdeem y administran Casas*/

select trim(nombre) || ' ' || trim(apellido) "Nombre Completo", sexo
from empleado e
where numoficina in (select numoficina
                from oficina
                where lower(ciudad) in 'aberdeem')
and numempleado in (select numempleado
                    from propiedad
                    where lower(tipo) in 'casa');