Timo: erste Zeile einer Gruppe ausgeben

Beitrag lesen

Hallo,

ich habe folgendes Szenario. Auf einem MS SQL-Server existieren zwei Tabellen

Gallerie mit den Spalten
gal_id gal_titel gal_datum gal_status ...

GallerieImages mit den Spalten
gi_id gi_gal_id gi_image gi_sortorder ...

d.h. in der Tabelle GallerieImages sind eine Reihe von Bildernamen, die jeweils einer Gallerie aus der Tabelle Galleries zugeordnet sind.

Ich möchte jetzt eine Abfrage, welche mir folgendes Ergebnis zurückliefert

gal_id gal_titel gal_datum gi_image

wobei gi_image nur das erste Bild aus der entsprechenden Gallerie ist. Dazu benutze ich momentan ein SQL-Statement ähnlich wie

SELECT     Galleries.gal_id, Galleries.gal_titel, Galleries.gal_datum, GalleriesImages.gi_image
FROM         Galleries INNER JOIN
                      GalleriesImages ON Galleries.gal_id = GalleriesImages.gi_gal_id
WHERE     (Galleries.gal_status = 1)
ORDER BY Galleries.gal_datum, GalleriesImages.gi_sortorder, GalleriesImages.gi_id DESC

wobei die Resultatliste hier aussieht wie

gal_id gal_titel gal_datum gi_image
1  Weihnachten 24.12.07 bild1.jpg
1  Weihnachten 24.12.07 bild2.jpg
1  Weihnachten 24.12.07 bild3.jpg
1  Weihnachten 24.12.07 bild4.jpg
2  Silvester 31.12.07 pic1.gif
2  Silvester 31.12.07 pic2.gif
2  Silvester 31.12.07 pic3.gif

Ich möchte aber nur

gal_id gal_titel gal_datum gi_image
1  Weihnachten 24.12.07 bild1.jpg
2  Silvester 31.12.07 pic1.gif

Hat jemand eine Idee, wie ich mein SQL-Statement so umbauen kann, dass es mir das gewünschte Resultat liefert bzw. ist dies innerhalb eines einzelnen SQL-Statements überhaupt möglich (ich benutzt MS SQL 2000)?

Danke für jeden Hinweis

Timo