30 lines
1.3 KiB
SQL
30 lines
1.3 KiB
SQL
-- Consulta 1
|
|
SELECT CONCAT(A.NOMBRE, CONCAT(' ', A.APELLIDO)) AS NOMBRE_ATLETA
|
|
FROM PARTICIPAR_PRECOMPETENCIA PP
|
|
LEFT JOIN ATLETA A ON (PP.ID_ATLETA = A.ID_ATLETA)
|
|
WHERE A.ID_ATLETA NOT IN (
|
|
SELECT PC.ID_ATLETA
|
|
FROM PARTICIPAR_COMPETENCIA PC
|
|
LEFT JOIN COMPETENCIA C ON (C.ID_COMPETENCIA = PC.ID_COMPETENCIA)
|
|
LEFT JOIN PRECOMPETENCIA P ON (P.COMPETENCIA = C.ID_COMPETENCIA)
|
|
LEFT JOIN PARTICIPAR_PRECOMPETENCIA PP2 ON (PP2.ID_PRECOMPETENCIA = P.ID_PRECOMPETENCIA)
|
|
WHERE (PC.ID_ATLETA = PP2.ID_ATLETA)
|
|
);
|
|
|
|
-- Consulta 2
|
|
-- Parte 1 Crear una vista que trae la cantidad maxima de atletas asociados a un pais que compitan en Atletismo
|
|
CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS
|
|
SELECT P.ID_PAIS, P.NOMBRE, COUNT(*) AS CANTIDAD_ATLETA
|
|
FROM COMPETENCIA C
|
|
LEFT JOIN PARTICIPAR_COMPETENCIA PC ON (C.ID_COMPETENCIA = PC.ID_COMPETENCIA)
|
|
LEFT JOIN ATLETA A ON A.ID_ATLETA = PC.ID_ATLETA
|
|
INNER JOIN DELEGACION D ON (D.ATLETA = A.ID_ATLETA)
|
|
INNER JOIN PAIS P ON (P.ID_PAIS = D.PAIS)
|
|
WHERE TIPO = (SELECT TD.ID_TIPO FROM TIPOS_DEPORTES TD WHERE (TD.DESCRIPCION = 'ATLETISMO'))
|
|
GROUP BY (P.ID_PAIS, P.NOMBRE);
|
|
|
|
SELECT P.NOMBRE, M.CANTIDAD_ATLETA
|
|
FROM MAX_ATLETA_ATLETISMO_PAIS M
|
|
LEFT JOIN PAIS P ON (P.ID_PAIS = M.ID_PAIS)
|
|
WHERE (M.CANTIDAD_ATLETA = (SELECT MAX(CANTIDAD_ATLETA) FROM MAX_ATLETA_ATLETISMO_PAIS))
|