Hallo,
bin SQL-Neuling. Ich habe eine Tabelle u.a. mit Feldern NAME, GRUPPE, AUTOR.
In der Tabelle kann es für einen NAMEN mehrere Datensätze mit unterschiedlichen Einträgen für GRUPPE und AUTOR geben, z.B.:
[NAME] [GRUPPE] [AUTOR]
MSK_1 1 1
MSK_2 1 1
MSK_2 3 3
MSK_2 5 1
MSK_5 5 5
...
Ich möchte nun alle Datensätze auslesen, die nur einen Datensatz pro NAME haben und (bei mehreren Datensätzen pro NAME) nur den Datensatz erhalten
bei dem GRUPPE und AUTOR möglichst gleich einem vorgegebenen Wert sind.
Existiert dieser Datensatz nicht, soll der genommen werden, bei dem die GRUPPE übereinstimmt und der AUTOR = 1 ist, scheitert das soll der Datensatz
genommen werden bei dem GRUPPE 1 und AUTOR = 1 ist.
Beispiel (AUTOR =5 GRUPPE =3) liefert schon die richtige Reihenfolge:
SELECT * FROM TEST
WHERE ((GRUPPE = <3>) AND (AUTOR = <5>)) OR
((GRUPPE = <3>) AND (AUTOR = <1>)) OR
((GRUPPE = <1>) AND (AUTOR = <1>))
ORDER BY NAME, GRUPPE DESC, AUTOR DESC
Wie kann ich das lösen?
Im Voraus vielen Dank
Roland
bin SQL-Neuling. Ich habe eine Tabelle u.a. mit Feldern NAME, GRUPPE, AUTOR.
In der Tabelle kann es für einen NAMEN mehrere Datensätze mit unterschiedlichen Einträgen für GRUPPE und AUTOR geben, z.B.:
[NAME] [GRUPPE] [AUTOR]
MSK_1 1 1
MSK_2 1 1
MSK_2 3 3
MSK_2 5 1
MSK_5 5 5
...
Ich möchte nun alle Datensätze auslesen, die nur einen Datensatz pro NAME haben und (bei mehreren Datensätzen pro NAME) nur den Datensatz erhalten
bei dem GRUPPE und AUTOR möglichst gleich einem vorgegebenen Wert sind.
Existiert dieser Datensatz nicht, soll der genommen werden, bei dem die GRUPPE übereinstimmt und der AUTOR = 1 ist, scheitert das soll der Datensatz
genommen werden bei dem GRUPPE 1 und AUTOR = 1 ist.
Beispiel (AUTOR =5 GRUPPE =3) liefert schon die richtige Reihenfolge:
SELECT * FROM TEST
WHERE ((GRUPPE = <3>) AND (AUTOR = <5>)) OR
((GRUPPE = <3>) AND (AUTOR = <1>)) OR
((GRUPPE = <1>) AND (AUTOR = <1>))
ORDER BY NAME, GRUPPE DESC, AUTOR DESC
Wie kann ich das lösen?
Im Voraus vielen Dank
Roland