1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Datenbankabfrage

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von palej, 19 September 2019.

  1. palej

    palej Neuer Benutzer

    Hallo werte Forumsmitglieder,

    könntet ihr mir bitte bei folgenden Abfragen helfen, da diese bei mir leider immer ins leere gehen, ich bin aber auch ein Anfänger auf diesem Gebiet. Sollte dies nicht das richtige Forum dafür sein möchte ich mich dafür entschuldigen ;)

    Fragestellung:
    Geben Sie den Notendurchschnitt für einige Studierende aus. Sie interessieren sich für den Notendurchschnitt aller Studierenden, die im selben Quartal wie Sie Geburtstag haben und zusätzlich in Linz und Umgebung wohnen. (Es sind alle Orte zulässig, die Linz im Namen enthalten.)
    Für den Notendurchschnitt sollen nur Kurse berücksichtigt werden, die bereits absolviert wurden. In der Ausgabe sollen zudem nur jene aufscheinen, deren Notendurchschnitt zumindest 3,0 ist.

    Meine Abfrage:
    SELECT AVG(note), student.geburtsdatum,plz.ort
    FROM absolvierung, student, plz
    WHERE student.matnr=absolvierung.student
    AND plz.plz=student.plz
    AND QUARTER (geburtsdatum)=2
    AND plz.ort LIKE "Linz%"
    AND absolvierung.note>3.0
    GROUP BY student.matnr

    die Falschmeldung die ich immer wieder bekomme
    ERROR: Falsche Eingabe ---> 'sql2.student.geburtsdatum' isn't in GROUP BY

    Und:
    Wieviel haben wir durch welche Kurse eingenommen? Gruppieren Sie nach LVA-Titel, LVA-Nummer und Semester. (Der Preis welcher in „lv“ angegeben ist, gilt pro Student). Blenden Sie in der Liste alle Zeilen ohne Einnahmen aus und sortieren Sie das Ergebnis chronologisch aufsteigend → ältester Wert soll oben in der Liste sein.

    Meine Abfrage:
    SELECT SUM(lv.preis), fach.name, lv.lvnr, lv.sem
    FROM fach, klasse, lv
    WHERE fach.fach=klasse.fach
    AND klasse.klasse=lv.klasse
    GROUP BY Date

    Fehlermeldung
    ERROR: Falsche Eingabe ---> Unknown column 'Date' in 'group statement'

    im Anhang wäre ein Bild von der Datenbank


    ich wäre für weitere Anregung dankbar

    Mfg Palej
     

    Anhänge:

  2. Walter

    Walter Administrator Mitarbeiter

    Du kannst nur nach etwas gruppieren (GROUP BY) das auch im Select enthalten ist, und alles im SELECT muss entweder eine Agregationsfunktion wie SUM oder im GROUP BY enthalten sein. Lies Dir einfach das mit dem GROUP BY noch einmal durch.
     
  3. akretschmer

    akretschmer Datenbank-Guru

    tja, die Fehlermeldungen sind ja eindeutig, oder? Wenn Du aggregierst (als hier avg()), dann müssen alle Spalten im Result aggregiert ODER gruppiert sein. Und die Spalte existiert auch nicht.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden