Anda di halaman 1dari 4

/*Ejercicio 1*/

SELECT U.login, U.nombre


FROM usuario U, cliente CT
WHERE U.id_usuario = CT.id_usuario;

/*Ejercicio 2*/

SELECT I.id_reportador, I.descripcion, S.fecha


FROM situacion S, incidencia I
WHERE I.id_reportador=1 AND I.id_incidencia = S.id_incidencia;

/*Ejercicio 3*/

SELECT I.descripcion, S.fecha


FROM incidencia I, situacion S, usuario U
WHERE U.correoe like 'Pepe@GMail.com' AND U.id_usuario =
I.id_reportador AND I.id_incidencia = S.id_incidencia;

/*Ejercicio 4*/

SELECT U.login, I.descripcion, S.descripcion, S.fecha


FROM usuario U, incidencia I, situacion S, tipoincidencia T
WHERE T.descripcion like 'Avera%' AND T.id_tipo = I.id_tipo AND
I.id_reportador = U.id_usuario AND I.id_incidencia =
S.id_incidencia;

/*Ejecicio 5*/

SELECT DISTINCT U.id_usuario, U.nombre, U.correoe, Aut.fecha_f


FROM usuario U, autorizacion Aut, incidencia I, cliente CT
WHERE U.Id_Usuario = CT.Id_Usuario AND I.id_reportador =
CT.Id_Usuario
AND C.ID_usuario= Aut.ID_cliente
AND U.Id_usuario not IN ( SELECT Id_Usuario FROM empleado );

/*Ejercicio 6*/

SELECT DISTINCT U.id_usuario, U.login, U.correoe, AUT.fecha_f


FROM usuario U, autorizacion AUT, incidencia I
WHERE I.id_reportador = U.id_usuario AND U.id_usuario =
AUT.id_cliente AND '12/08/16' BETWEEN AUT.fecha_i AND
AUT.fecha_f;

/*Ejercicio 7*/

SELECT U.id_usuario, U.nombre, U.login


FROM usuario U, incidencia I
WHERE U.id_usuario=I.id_reportador AND U.id_usuario NOT IN
(SELECT id_usuario FROM cliente);

/*Ejercicio 8*/

SELECT U.id_usuario, U.login, COUNT (*) ContIncidencias


FROM usuario U, incidencia I
WHERE I.id_supervisor=U.id_usuario
GROUP BY U.id_usuario, U.login;

/*Ejercicio 9 */

SELECT U.id_usuario, U.login, COUNT (*) ContIncidencias


FROM usuario U, incidencia I
WHERE I.id_supervisor=U.id_usuario
GROUP BY U.id_usuario, U.login
HAVING COUNT(*) >2;

/*Ejercicio 10*/

SELECT U.id_usuario, U.nombre, COUNT (*) ContIncidencias


FROM usuario U, incidencia I
WHERE I.id_reportador=U.id_usuario
GROUP BY U.id_usuario, U.nombre
HAVING COUNT(*) >1;

/*Ejercicio 11*/

SELECT U.id_usuario, U.login, U.nombre, COUNT (*) ContIncidencias


FROM usuario U, incidencia I
WHERE I.id_reportador=U.id_usuario
GROUP BY U.id_usuario, U.login, U.nombre
HAVING COUNT(*) >= ALL(
SELECT COUNT(*) FROM Cliente CT, Incidencia I WHERE
CT.id_usuario = I.id_reportador GROUP BY CT.id_usuario);

/*Ejercicio 12*/

SELECT U.id_usuario, U.login, COUNT (*) ContIncidencias


FROM usuario U, incidencia I
WHERE I.id_reportador=U.id_usuario
GROUP BY U.id_usuario, U.login
HAVING COUNT(*) >= ALL(
SELECT COUNT(*) FROM usuario U, Incidencia I WHERE
U.id_usuario = I.id_reportador GROUP BY U.id_usuario);

/*Ejercicio 13*/

SELECT U.id_usuario, U.login


FROM usuario U, incidencia I
WHERE I.id_reportador = U.id_usuario
GROUP BY U.id_usuario, U.login
HAVING COUNT(DISTINCT id_tipo) =
(SELECT COUNT(*) FROM tipoincidencia);

/*Ejercicio 14*/

(SELECT U.id_usuario, U.nombre


FROM usuario U, asignarol AR
WHERE AR.id_rol=1 AND U.id_usuario=AR.cod_usuario)
INTERSECT
(SELECT U.id_usuario, U.nombre
FROM usuario U, asignarol AR
WHERE AR.id_rol=2 AND U.id_usuario=AR.cod_usuario)
INTERSECT
(SELECT U.id_usuario, U.nombre
FROM usuario U, asignarol AR
WHERE AR.id_rol=3 AND U.id_usuario=AR.cod_usuario)
INTERSECT
(SELECT U.id_usuario, U.nombre
FROM usuario U, asignarol AR
WHERE AR.id_rol=4 AND U.id_usuario=AR.cod_usuario);

/*Ejercicio 15*/

SELECT U.id_usuario, U.login


FROM usuario U
WHERE NOT EXISTS (SELECT AM.id_ambito
FROM ambito AM
WHERE AM.id_ambito NOT IN (SELECT I.ambito
FROM situacion S,
incidencia I
WHERE
U.id_usuario=S.codempleado_sol AND I.id_incidencia =
S.id_incidencia));

/*Ejercicio 16*/

SELECT S.id_incidencia, S.fecha, I.descripcion, round((SELECT


SP.fecha
FROM
situacion SP
WHERE
SP.id_estado=3 AND SP.id_incidencia=S.id_incidencia)
-
(SELECT
SP.fecha
FROM
situacion SP
WHERE
SP.id_estado=1 AND SP.id_incidencia=S.id_incidencia))
FROM situacion S, incidencia I
WHERE S.id_incidencia=I.id_incidencia AND S.id_estado=3;

/*Ejercicio 17*/

SELECT U.tipousuario, U.id_usuario, U.nombre, I.id_incidencia,


I.descripcion, COUNT (S.id_incidencia) situaciones
FROM usuario U, incidencia I, situacion S
WHERE I.id_incidencia = S.id_incidencia AND
I.id_reportador=U.id_usuario
GROUP BY U.tipousuario, U.id_usuario, U.nombre, I.id_incidencia,
I.descripcion;
/*Ejercicio 18*/

SELECT U.id_usuario, U.nombre, I.id_incidencia, COUNT


(S.id_incidencia) situaciones
FROM usuario U, incidencia I, situacion S
WHERE I.id_incidencia = S.id_incidencia AND
I.id_reportador=U.id_usuario
GROUP BY U.id_usuario, U.nombre, I.id_incidencia
HAVING COUNT(S.id_incidencia) >= ALL(
SELECT COUNT(S.id_incidencia) FROM usuario U, incidencia I,
situacion S
WHERE I.id_incidencia = S.id_incidencia AND
I.id_incidencia=U.id_usuario
GROUP BY U.id_usuario, U.nombre, I.id_incidencia);

/*Ejercicio 19*/

SELECT U.id_usuario, U.nombre, I.id_incidencia, COUNT(*)


situaciones
FROM incidencia I, situacion S, usuario U
WHERE I.id_incidencia=S.id_incidencia AND
U.id_usuario=I.id_reportador
GROUP BY U.id_usuario, U.nombre, I.id_incidencia
HAVING COUNT(*)>=ALL(SELECT avg(count(*)) situaciones
FROM incidencia I, situacion S, usuario U
WHERE I.id_incidencia=S.id_incidencia AND
U.id_usuario=I.id_reportador
GROUP BY U.id_usuario, U.nombre,
I.id_incidencia);

/*Ejercicio 20*/

DELETE FROM usuario U WHERE U.correoe = 'Pepe@GMail.com';