Zorbing icon

[DB] select.sql

Zorbing | PRO | 05/11/14 12:40:28 AM UTC | 0 ⭐ | 288 👁️ | Never ⏰ | []
SQL |

2.42 KB

|

None

|

0 👍

/

0 👎

--; \begin{verbatim}
CONNECT TO dbs;
 
-- 1. a)
SELECT *
FROM flugzeug
WHERE flugzeugnummer IN (
    SELECT flugzeugnummer
    FROM flug
    GROUP BY flugzeugnummer
    HAVING COUNT(flugzeugnummer) > 1
);
 
-- 1. b)
SELECT *
FROM flugzeug
WHERE flugzeugnummer IN (
    SELECT flugzeugnummer
    FROM zertifiziert, mitarbeiter
    WHERE zertifiziert.personalnummer = mitarbeiter.personalnummer
        AND gehalt > 100
    GROUP BY flugzeugnummer
    HAVING COUNT(flugzeugnummer) = (SELECT COUNT(personalnummer) FROM mitarbeiter WHERE gehalt > 100000)
);
 
-- 1. c)
SELECT mitarbeiter.*
FROM mitarbeiter, zertifiziert, flugzeug
WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer
    AND zertifiziert.flugzeugnummer = flugzeug.flugzeugnummer
    AND flugzeug.reichweite > 5000
    AND mitarbeiter.personalnummer NOT IN (
        SELECT mitarbeiter.personalnummer
        FROM mitarbeiter, zertifiziert, flugzeug
        WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer
            AND zertifiziert.flugzeugnummer = flugzeug.flugzeugnummer
            AND flugzeug.name LIKE '%Boeing%'
    );
 
-- 1. d)
SELECT *
FROM mitarbeiter
WHERE gehalt = (
    SELECT MAX(gehalt)
    FROM mitarbeiter
);
 
-- 1. e)
SELECT *
FROM mitarbeiter
WHERE gehalt = (
    SELECT MAX(m1.gehalt)
    FROM mitarbeiter m1, mitarbeiter m2
    WHERE m1.gehalt < m2.gehalt
);
 
-- 1. f)
SELECT *
FROM mitarbeiter
WHERE personalnummer IN (
    SELECT personalnummer
    FROM zertifiziert
    GROUP BY personalnummer
    HAVING COUNT(personalnummer) = (
        SELECT MAX(anzahl)
        FROM (
            SELECT COUNT(personalnummer) AS anzahl
            FROM zertifiziert
            GROUP BY personalnummer
        )
    )
);
 
-- 1. g)
SELECT mitarbeiter.personalnummer, mitarbeiter.name, mitarbeiter.gehalt
FROM mitarbeiter, zertifiziert
WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer
GROUP BY mitarbeiter.personalnummer, mitarbeiter.name, mitarbeiter.gehalt
HAVING COUNT(mitarbeiter.personalnummer) = 3;
 
-- 1. h)
SELECT SUM(gehalt) AS gesamtGehalt
FROM mitarbeiter;
 
-- 1. i)
SELECT AVG(gehalt) - (
    SELECT AVG(gehalt)
    FROM mitarbeiter
)
FROM mitarbeiter, zertifiziert
WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer;
 
-- 1. j)
SELECT CASE
        WHEN COUNT(f1.flugnummer) > 0 THEN 1
        ELSE 0
    END
FROM flug f1, flug f2
WHERE f1.ursprung = 'Hamburg' AND f1.ziel = 'Pisa'
    OR f1.ursprung = 'Hamburg' AND f1.ziel = f2.ursprung AND f2.ziel = 'Pisa';
 
-- 1. k)
ALTER TABLE flug
ADD preis INT;
 
--; \end{verbatim}

Comments