Ergebnis 1 bis 5 von 5

Thema: Query mit verschachteltem GROUP BY?

  1. #1
    serendipity ist offline Neuer Benutzer
    Registriert seit
    05.11.2008
    Beiträge
    2

    Pfeil Query mit verschachteltem GROUP BY?

    Hallo,

    ich habe ein (größeres) Problem mit einer Abfrage, die ich machen möchte. Ich habe folgende Tabelle:




    usw. die Tabelle geht noch ewig so fort Zur Erklärung: Ein Student S# ist in einem Kurs C# im Jahr year eingeschrieben und kann dort Test Nummer 1...n belegen, die jeweils aus Fragen 1...n bestehen, die wiederum aus parts a...z bestehen. Für jeden Part bekommt der Student eine Punktzahl.
    Nun zu meinem Problem: Ich möchte jetzt mit einer Abfrage die Studenten rausfiltern, die einen Test komplett nicht abgegeben haben, d.h. die in jedem part dieses Tests 0 Punkte haben.
    Mein Gedanke war, dass ich doch dafür sicherlich GROUP BY verwenden könnte, jedoch müsste ich doch mehrere GROUP BYs verschachteln oder? Denn ich muss ja zuerst für jeden Studenten den entsprechenden Kurs (denn es gibt ja mehr als nur C1) im entsprechenden Jahr (es gibt auch mehr als nur 2007) raussuchen und darin dann die Testnummer, und darin dann schließlich die Punkte aller parts summieren... Leider habe ich soetwas noch nie gesehen, und weiß daher nicht, wie das funktionieren soll?! Oder denke ich vielleicht viel zu kompliziert und es geht viel einfacher?


    Es wäre wirklich wunderbar, wenn mir jemand von euch einen Tipp geben könnte!
    Vielen Dank schonmal fürs drüber-nachdenken!


    Gruß,
    Sara
    Geändert von serendipity (05.11.2008 um 14:05 Uhr)

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von serendipity Beitrag anzeigen
    Hallo,

    ich habe ein (größeres) Problem mit einer Abfrage, die ich machen möchte. Ich habe folgende Tabelle:




    usw. die Tabelle geht noch ewig so fort Zur Erklärung: Ein Student S# ist in einem Kurs C# im Jahr year eingeschrieben und kann dort Test Nummer 1...n belegen, die jeweils aus Fragen 1...n bestehen, die wiederum aus parts a...z bestehen. Für jeden Part bekommt der Student eine Punktzahl.
    Nun zu meinem Problem: Ich möchte jetzt mit einer Abfrage die Studenten rausfiltern, die einen Test komplett nicht abgegeben haben, d.h. die in jedem part dieses Tests 0 Punkte haben.
    select distinct student from score where score = 0 except select student from score where score > 0;

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    symbiont ist offline Erfahrener Benutzer
    Registriert seit
    17.03.2008
    Ort
    NULL
    Beiträge
    1.320

    Standard having

    Code:
    select student 
    from .. 
    group by student, course, part
    where year = 2007 
    having sum(score) = 0
    order by ..

    so in etwa

  4. #4
    serendipity ist offline Neuer Benutzer
    Registriert seit
    05.11.2008
    Beiträge
    2

    Standard

    Hey,

    also vielen Dank erstmal, aber vielleicht hätte ich mich etwas klarer ausdrücken müssen: ich möchte nicht wissen, welcher Student im Jahr 2007 im Test 0 Punkte hatte sondern welche Studenten generell in irgendeinem Jahr, für irgendeinen Kurs und irgendeinen Test in allen parts 0 Punkte hatten...
    Damit fallen eure beiden Lösungen leider raus, fürchte ich

    Gruß,
    Sara

  5. #5
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von serendipity Beitrag anzeigen
    Hey,

    also vielen Dank erstmal, aber vielleicht hätte ich mich etwas klarer ausdrücken müssen: ich möchte nicht wissen, welcher Student im Jahr 2007 im Test 0 Punkte hatte sondern welche Studenten generell in irgendeinem Jahr, für irgendeinen Kurs und irgendeinen Test in allen parts 0 Punkte hatten...
    Damit fallen eure beiden Lösungen leider raus, fürchte ich

    Gruß,
    Sara
    So, fürchtest Du.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Ähnliche Themen

  1. Problem mit JOIN und GROUP BY
    Von ratio im Forum SQL
    Antworten: 20
    Letzter Beitrag: 23.08.2009, 12:01
  2. Max (avg(Wert)) Group by
    Von Kai-Behncke im Forum SQL
    Antworten: 2
    Letzter Beitrag: 15.01.2009, 16:41
  3. Group by MySql,PostGres
    Von Humpelkutte im Forum SQL
    Antworten: 4
    Letzter Beitrag: 15.04.2008, 23:18
  4. Antworten: 0
    Letzter Beitrag: 11.02.2008, 13:28
  5. Antworten: 5
    Letzter Beitrag: 06.07.2007, 07:20

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum