1. USE UebVerleger
  2.  
  3. /* Aufg. 1: Welche Angestellte haben welchen Job? [43] */
  4. SELECT Vname, Nname, Job_Besch FROM Angestellte
  5. LEFT JOIN Job ON Angestellte.Job_id = Job.Job_id
  6.  
  7. /* Aufg. 2: Welche Buchhandlung erhält welche Rabattart? [6] */
  8. SELECT Name, Rabattart FROM Buchhandlungen
  9. LEFT JOIN Rabatte ON Buchhandlungen.B_id = Rabatte.B_id
  10.  
  11. USE UebBibliothek
  12.  
  13. /* Aufg. 3: Die Abfrage soll den Titeln die entsprechende ISBN-Nummer zuordnen. [1000] */
  14. SELECT Titel, ISBN FROM Titel
  15. LEFT JOIN Buch ON Titel.Titel_nr = Buch.Titel_nr
  16.  
  17. USE UebVerleger
  18.  
  19. /* Aufg. 4: Welche Titel hat die Autorin Anne Ringer verlegen lassen. [2] */
  20. SELECT A_vname, A_nname, Titel FROM Autoren
  21. INNER JOIN Titelautor ON Autoren.A_id = Titelautor.A_id
  22. LEFT JOIN Titel ON Titelautor.Titel_id = Titel.Titel_id
  23. WHERE A_nname = 'Ringer' AND A_vname = 'Anne'
  24.  
  25. USE UebBibliothek
  26.  
  27. /* Aufg. 5: Welche Jugendlichen sind welchen Erwachsenen zugeordnet? */
  28. SELECT Jugendliche.Mitglieds_Nr, Nachname, Vorname, Erw_Mitglieds_Nr
  29. FROM Jugendliche LEFT JOIN Mitglieder ON Jugendliche.Mitglieds_Nr = Mitglieder.Mitglieds_nr
  30.  
  31. /* oder Lösung von Jakob Klamser */
  32. DECLARE @tmp TABLE
  33. (
  34. ErwachsenerNach VARCHAR(MAX),
  35. ErwachsenerVor VARCHAR(MAX),
  36. J_id int
  37. )
  38. INSERT INTO @tmp
  39.  
  40. SELECT m.Nachname AS ErwachsenerNachName, m.Vorname AS ErwachsenerVorName, j
  41. .Mitglieds_Nr AS Jugendlicher FROM Jugendliche AS j
  42. INNER JOIN Erwachsene AS e ON e.Mitglieds_Nr = j.Erw_Mitglieds_Nr
  43. INNER JOIN Mitglieder AS m ON m.Mitglieds_Nr = e.Mitglieds_Nr AND
  44. m.Mitglieds_Nr
  45. = j.Erw_Mitglieds_Nr
  46.  
  47. SELECT m.Nachname AS JugendlicherNachname, m.Vorname AS JugendlicherVorname,
  48. ErwachsenerNach, ErwachsenerVor FROM Mitglieder AS m
  49. INNER JOIN @tmp ON J_id = m.Mitglieds_Nr
  50.  
  51. /* oder Lösung von Haidar Mourtada */
  52. SELECT
  53.     jug.Vorname AS 'JugVorname', jug.Nachname AS 'JugNachname', jug.Mitglieds_Nr AS 'JugID', erw.Vorname AS 'ErwVorname', erw.Nachname AS 'ErwNachname', erw.Mitglieds_Nr AS 'ErwID'
  54. FROM
  55. (
  56.     SELECT
  57.         b.Mitglieds_Nr AS 'mitgliednr',
  58.         b.Erw_Mitglieds_Nr AS 'erwid'
  59.     FROM Erwachsene a
  60.     JOIN Jugendliche b ON a.Mitglieds_Nr = b.Erw_Mitglieds_Nr
  61. ) x
  62. JOIN Mitglieder erw ON erw.Mitglieds_Nr = x.erwid
  63. LEFT JOIN Mitglieder jug ON jug.Mitglieds_Nr = x.mitgliednr
  64.  
  65.  
  66. /* Aufg. 6: Selektieren Sie alle entliehenen Titel mit der Exemplarnummer (doppelte Datensätze unterdrücken). [250] */
  67. SELECT DISTINCT Titel, Exemplar_Nr, Entliehen FROM Titel
  68. INNER JOIN Exemplar ON Entliehen = 'Y' ORDER BY Titel, Exemplar_Nr
  69.  
  70. /* Aufg. 7: Wer hat arabische (Sprache = 'arabic') Bücher ausgeliehen? [655] */
  71. SELECT DISTINCT Mitglieder.Mitglieds_Nr, Nachname, Vorname FROM Mitglieder
  72. INNER JOIN Leihvorgang ON Mitglieder.Mitglieds_Nr = Leihvorgang.Mitglieds_Nr
  73. INNER JOIN Titel ON Leihvorgang.Titel_Nr = Titel.Titel_Nr
  74. INNER JOIN Buch ON Titel.Titel_Nr = Buch.Titel_Nr
  75. WHERE Sprache = 'arabic'
  76.  
  77. /* Aufg. 8: Lassen Sie sich aus der Datenbank Bibliothek die erwachsenen Mitglieder auflisten, */
  78. /*          die den gleichen Wohnort wie das Mitglied mit der Mitglieds_Nr=13 haben. */
  79. /*          Tabellenspalten: Mitglieds_Nr, Name und Ort [1155] */
  80. SELECT M.Mitglieds_Nr, M.Nachname, E.Ort
  81. FROM Mitglieder AS M
  82. JOIN Erwachsene AS E
  83. ON E.Mitglieds_Nr=M.Mitglieds_Nr
  84. JOIN Erwachsene EE
  85. ON E.Ort=EE.Ort
  86. WHERE EE.Mitglieds_Nr=13

Last modified: Thursday, 24 May 2018, 2:07 PM