Hallo!

> SELECT Kurse.KursID, Kurse.Titel1, MIN(Termine.StartDatum)
> FROM Kurse INNER JOIN Termine ON Kurse.KursID = Termine.KursID 
> GROUP BY Kurse.KursID
> 
> Und achja... Redundanz... Vermeide sie... :-)

... und das sortiert jetzt die Kurse nach dem fr�hesten
Veranstaltungstermin? Kann ich gar nicht nachvollziehen. Das m�sste
sogar wieder einen Syntax-Fehler geben, da Titel1 keine Aggregatfunktion
hat und nicht in der GROUP-BY-Klausel auftaucht. So liefert MIN auch das
Minimum aller Termine, also in jedem JOIN den gleichen Wert unabh�ngig
von der KursID

Aus meiner Sicht kommt man hier um ein Sub-Select nicht herum. Also:

View1:
SELECT   KursID, Titel1, 
         (SELECT MIN(StartDatum)
          FROM   Termine
          WHERE  Termine.KursID = Kurse.KursID
         ) AS Kursbeginn
FROM     Kurse

... und dann:

SELECT   TOP 100 PERCENT View1.Titel1,
         Termine.StartDatum, Termine.EndDatum
FROM     View1 INNER JOIN Termine ON Termine.KursID = View1.KursID
ORDER BY View1.Kursbeginn, Termine.StartDatum

Keine Redundanz (wegen "View1"), keine Gruppierung (war nicht verlangt,
bringt auch nichts), sehr performant (MIN-Funktion nur �ber einen
kleinen Teil der Tabelle dank WHERE), ..., oder?

"TOP 100 PERCENT" ist erforderlich, damit der SQL-Server nach
"View1.Kursbeginn" sortieren kann; ansonsten w�rde die View nicht
sortiert. In "View1" ist eine ORDER-BY-Klausel �berfl�ssig, da "View2" -
die eigentliche Abfrage ja noch zus�tzlich nach Startdatum sortiert
werden soll. "View1" ist erforderlich, wenn man performant sortieren
will, ansonsten k�nnte man das Sub-Select ja auch in der FROM- und in
der ORDER-BY-Klausel definieren.

Freundliche Gr��e
Joachim van de Bruck


~~~~~~~~~~~~~~~~~~~~~~~~~~~sponsored by United Planet~~~~~~~~~~~~~~~~~
Intrexx.BizWalker + ODBC/OLEDB-Daten = ASP-Formular
ATTACK! Download Intrexx CRM-Studio Now!   http://www.intrexx.com
_______________________________________________
Database.asp mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/database.asp

Antwort per Email an