Está en la página 1de 3

-- EJERCICIOS SQL ORACLE

-- se utilizarán las tablas de WORKPLAN: PER, SUCUR, CARGO ...

select*from PER; -->P


select*from SUCUR; -->S
select*from CARGO; -->C

1. hacer un query que cuente cuantas personas existen registradas


en la tabla PER.
SELECT COUNT(*)
FROM PER;
2. hacer un query que cuente cuantas personas existen registradas
en la tabla PER, y sean del sexo femenino (campo x_sexo).
SELECT COUNT(*)
FROM per
WHERE x_sexo='F';
3. hacer un query que cuente cuantas personas existen registradas
en la tabla PER, y sean del sexo mascuino , y tengan al menos 2 hijos
(campo nro_hijo).
SELECT COUNT(*)
FROM per
WHERE x_sexo='M'
AND nro_hijo >=2;

4. hacer un query que cuente cuantas personas existen registradas


en la tabla PER, que cumpla una de las dos condiciones:
- sean del sexo masculino , y tengan 2 al menos hijos , O
- sean del sexo femenino , y tengan 1 hijo

SELECT COUNT(*)
FROM per
WHERE (x_sexo=='M' AND nro_hijo >=2)
or (x_sexo=='F' AND nro_hijo=1);

----------------------------------------------------------------------
5. hacer un query que muestre los siguientes datos:
codigo de la persona ( campo cod, tabla per)
nombre completo de la persona ( ape1, ape2, nom1, nom2 tabla per )
descripcion sucursal ( codigo esta en sucu_cod de per, descrip en tabla sucu )
descripcion cargo (codigo esta en cargo_cod de per, descrip en tabla cargo
descripcion empresa (codigo esta en emp_cod de per, descrip en tabla emp)
)
ordernado por empresa, sucursal, cargo, nombre completo
SELECT p.cod "Codigo Persona",
p.ape1||' '||p.ape2||' '||p.nom1||' '||p.nom2 Nombres,
s.nom Sucursal,
c.nom Cargo,
e.nom Empresa
FROM per p, sucu s, cargo c, emp e
WHERE p.cargo_cod=c.cod AND
p.emp_cod=e.cod
ORDER BY Nombres,Sucursal,Cargo,Empresa;

6. hacer un query que muestre todas las empresas y sucursales, y cuantos emplead
os
hombres existen por cada empresa y sucursal. ejemplo:
sucursal hombres
pariacoto 45
lima 22
...
SELECT s.nom "sucursal",COUNT (*) "hombres"
FROM per p, sucu s , emp e
WHERE p.sucu_cod=s.cod AND p.x_sexo='M'
GROUP BY s.nom;
SELECT e.nom Empresas, COUNT(*) "hombres"
FROM per p, sucu s , emp e
WHERE p.emp_cod=e.cod AND p.x_sexo='M'
GROUP BY e.nom;
7. hacer un query que muestre las sucursales que al menos tengan
10 hombres para una empresa.

SELECT s.nom, count(*) "numero de empleados"


FROM per p, sucu s
WHERE p.sucu_cod=s.cod
GROUP BY p.sucu_cod
HAVING count(*)>=10;

8.* hacer un query que muestre solo los empleados sin sucursal asignada.
SELECT p.nom1
FROM per p , sucu s
WHERE p.sucu_cod (+)= s.cod
AND p.sucu_cod IS NULL
9. hacer un query que muestre las personas nacidas (campo fec_nac)
entre el 1 de mayo de 1965, y el 1 de julio de 1966, del sexo masculino.
Los campos a mostrar son :
codigo de persona
nombre 1
descripcion de sucursal (si no la tiene, mostrar nulo)

SELECT p.cod, p.nom1, s.nom


FROM per p, sucu s
WHERE p.sucu_cod(+)=s.cod and
p.x_sexo = 'M' AND
p.fec_nac BETWEEN '01-05-1965' and '01-07-1966';
----------------------------------------------------------------------
http://ss64.com/ora/syntax-to_date.html

También podría gustarte