Bernd: Böses Mysql if-Problem...

Hallo, ich wollte sinngemäß folgendes umsetzen:
Es sollen Klausuren nach Note sortiert werden.
Klausurtitel      Note      Anzahl der Bewertungen(bewertungssumme)

Test              1         3
test1             1         1
test2             6         1
test3             6         3

Also Klausuren, die dreimal ne Eins kriegen sind besser als die, die 1mal ne Eins bekommen haben.
Aber: Klausuren, die dreimal ne Sechs kriegen sind schlechter als die, die 1mal ne Sechs bekommen haben.

select testnote, bewertungssume,
if(testnote<4,"desc","asc") as sortierung, klausur
from main
order by testnote, bewertungssumme sortierung

Also Ziel ist, dass hinter bewertungssumme ein desc steht (wenn die Note der jeweiligen Klausur 1,2 oder 3 ist). Dann soll nach desc sortiert werden, wenn die Note 4,5 oder 6 ist soll nach asc sortiert werden (normale Sortierung bei order by)
Das ganze läuft so aber nicht, gibts da nen Kniff ??
Thx B.

PS: Es muß in EINER ZSQL Methode passen, leider...;(

  1. Hallo.

    Sind in SQL-Statements nicht auch Rechenoperationen zugelassen? Dann müsste doch der Durchschnitt errechenbar sein - und der erfüllt die gewünschten Sortierkriterien.

    Grüße aus Würzburg
    Julian

    --
    ss:) zu:{ ls:< fo:) de:< va:} ch:° n4:} rl:° br:> js:| ie:{ fl:( mo:)
  2. Hallo,

    ich wollte sinngemäß folgendes umsetzen:
    Es sollen Klausuren nach Note sortiert werden.
    Klausurtitel      Note      Anzahl der Bewertungen(bewertungssumme)

    Test              1         3
    test1             1         1
    test2             6         1
    test3             6         3

    Also Klausuren, die dreimal ne Eins kriegen sind besser als die, die 1mal ne Eins bekommen haben.
    Aber: Klausuren, die dreimal ne Sechs kriegen sind schlechter als die, die 1mal ne Sechs bekommen haben.

    select testnote, bewertungssume,
    if(testnote<4,"desc","asc") as sortierung, klausur
    from main
    order by testnote, bewertungssumme sortierung

    SELECT testnote, bewertungssume,
    IF(testnote<4,bewertungssumme,bewertungssumme*(-1)) as sortierung,
    klausur
    FROM main
    ORDER BY testnote, sortierung DESC

    So ganz Einleuchtend ist mir die Logik Deiner Abfrage allerdings noch nicht. Ist besser gleich leichter? Will sagen, soll die Sortierung den Schwierigkeitsgrad der Klausuren spiegeln? Sind die Noten Durchschnittsnoten? Wenn ja, warum ist dann eine Klausur, die 1 Mal den Durchschnitt Note 1 erreicht hat besser(leichter?) als eine Klausur, die 100 Mal die Durchschnittsnote 2 erreicht hat? Meiner Meinung nach sind diese Klausuren nicht miteinander zu vergleichen. Das eine Mal kann ein "Ausrutscher" (Gaußsche Normalverteilung) sein. Es traf eben einfach mal eine sehr gute Klasse ;-)).

    viele Grüße

    Axel

    1. Danke hat gut gefunzt, wär ich nicht so schnell drauf gekommen...
      Sinn war halt Klausuren selbst zu bewerten ;o))