Vielleicht habe ich das nicht kapiert aber die Frage war:

Ich brauche eine Liste von Kursen, jeweils nach Ihrem Anfangs- Termin geordnet.


Mein Vorschlag um halb eins:

SELECT Titel1, startdatum, enddatum FROM Kurse, termine
WHERE Kurse.KursID = termine.kursid ORDER by termine.startdatum

Tada und schon hasste alle.

Gr�sse

Charles Bischof




//
//  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
//
//


~~~~~~~~~~~~~~~~~~~~~~~~~~~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