Zorbing

[DB] select.sql

May 10th, 2014
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.42 KB | None | 0 0
  1. --; \begin{verbatim}
  2. CONNECT TO dbs;
  3.  
  4. -- 1. a)
  5. SELECT *
  6. FROM flugzeug
  7. WHERE flugzeugnummer IN (
  8.     SELECT flugzeugnummer
  9.     FROM flug
  10.     GROUP BY flugzeugnummer
  11.     HAVING COUNT(flugzeugnummer) > 1
  12. );
  13.  
  14. -- 1. b)
  15. SELECT *
  16. FROM flugzeug
  17. WHERE flugzeugnummer IN (
  18.     SELECT flugzeugnummer
  19.     FROM zertifiziert, mitarbeiter
  20.     WHERE zertifiziert.personalnummer = mitarbeiter.personalnummer
  21.         AND gehalt > 100
  22.     GROUP BY flugzeugnummer
  23.     HAVING COUNT(flugzeugnummer) = (SELECT COUNT(personalnummer) FROM mitarbeiter WHERE gehalt > 100000)
  24. );
  25.  
  26. -- 1. c)
  27. SELECT mitarbeiter.*
  28. FROM mitarbeiter, zertifiziert, flugzeug
  29. WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer
  30.     AND zertifiziert.flugzeugnummer = flugzeug.flugzeugnummer
  31.     AND flugzeug.reichweite > 5000
  32.     AND mitarbeiter.personalnummer NOT IN (
  33.         SELECT mitarbeiter.personalnummer
  34.         FROM mitarbeiter, zertifiziert, flugzeug
  35.         WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer
  36.             AND zertifiziert.flugzeugnummer = flugzeug.flugzeugnummer
  37.             AND flugzeug.name LIKE '%Boeing%'
  38.     );
  39.  
  40. -- 1. d)
  41. SELECT *
  42. FROM mitarbeiter
  43. WHERE gehalt = (
  44.     SELECT MAX(gehalt)
  45.     FROM mitarbeiter
  46. );
  47.  
  48. -- 1. e)
  49. SELECT *
  50. FROM mitarbeiter
  51. WHERE gehalt = (
  52.     SELECT MAX(m1.gehalt)
  53.     FROM mitarbeiter m1, mitarbeiter m2
  54.     WHERE m1.gehalt < m2.gehalt
  55. );
  56.  
  57. -- 1. f)
  58. SELECT *
  59. FROM mitarbeiter
  60. WHERE personalnummer IN (
  61.     SELECT personalnummer
  62.     FROM zertifiziert
  63.     GROUP BY personalnummer
  64.     HAVING COUNT(personalnummer) = (
  65.         SELECT MAX(anzahl)
  66.         FROM (
  67.             SELECT COUNT(personalnummer) AS anzahl
  68.             FROM zertifiziert
  69.             GROUP BY personalnummer
  70.         )
  71.     )
  72. );
  73.  
  74. -- 1. g)
  75. SELECT mitarbeiter.personalnummer, mitarbeiter.name, mitarbeiter.gehalt
  76. FROM mitarbeiter, zertifiziert
  77. WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer
  78. GROUP BY mitarbeiter.personalnummer, mitarbeiter.name, mitarbeiter.gehalt
  79. HAVING COUNT(mitarbeiter.personalnummer) = 3;
  80.  
  81. -- 1. h)
  82. SELECT SUM(gehalt) AS gesamtGehalt
  83. FROM mitarbeiter;
  84.  
  85. -- 1. i)
  86. SELECT AVG(gehalt) - (
  87.     SELECT AVG(gehalt)
  88.     FROM mitarbeiter
  89. )
  90. FROM mitarbeiter, zertifiziert
  91. WHERE mitarbeiter.personalnummer = zertifiziert.personalnummer;
  92.  
  93. -- 1. j)
  94. SELECT CASE
  95.         WHEN COUNT(f1.flugnummer) > 0 THEN 1
  96.         ELSE 0
  97.     END
  98. FROM flug f1, flug f2
  99. WHERE f1.ursprung = 'Hamburg' AND f1.ziel = 'Pisa'
  100.     OR f1.ursprung = 'Hamburg' AND f1.ziel = f2.ursprung AND f2.ziel = 'Pisa';
  101.  
  102. -- 1. k)
  103. ALTER TABLE flug
  104. ADD preis INT;
  105.  
  106. --; \end{verbatim}
Advertisement
Add Comment
Please, Sign In to add comment