SQL Abfrage

Hallo,

ich steht vor einem kleinem Problem. Ich hoffe Ihr könnte mir dazu ein paar Tipps geben.

Meine Tabellenstruktur ist wie folgt:

Tabelle:
FACH
ZEIT
SPALTE
WERT

Die Felder SPALTE, ZEIT und FACH bilden einen Index (nicht Primär!)
Im Feld Spalte steht z.B. 1 bzw 2. Jetzt möchte ich die ersten 20 Einträge sortiert nach FACH anzeigen. Allerdings kommt dazu das die Spalten (1 und 2) nebeneinander gestellt werden sollen.

Sprich:
SELECT WERT FROM Tabelle ORDER BY FACH LIMIT 0,20
=> Geht nicht: da ich dann nicht 20 Werte aus Spalte 1 und 20 Werte aus Spalte 2 bekomme.

Alternative:
Zwei Abfragen:

  1. SELECT WERT FROM Tabelle WHERE Spalte=1 ORDER BY FACH LIMIT 0,20

  2. SELECT WERT FROM Tabelle WHERE Spalte=2 ORDER BY FACH LIMIT 0,20
    => Geht nicht: Da die 20 Werte aus Spalte 2 ggf. ganz andere Fächer sind die nicht in Spalte 1 sind.

Kann mir jemand helfen das Problem zu lösen?

Hier nochmal eine Beispieltabelle und das Ergebnis:

FACH, ZEIT, SPALTE, WERT
Mathe, 1, 1, 12
Deutsch, 1, 1, 12
Deutsch, 1, 2, 22

Ergebnis:
Deutsch, 12, 22
Mathe, 12, 0

Die Spalte Zeit hat hier nichts zu sagen also nicht verwirren lassen.

Kann mir jemand helfen das Problem zu lösen?

Ich bin zwar kein SQL-Spezialist, aber ich denke nicht das du dies mit SQL schaffst. Mit was greifst du dann auf die Tabelle zu?
Programmiersprache?