Hallo! > Stimmt... Titel1 muss noch ins group... Oder oben raus... > Aber unab�ngig ist das MIN nicht... Es gilt innerhalb der group, also > innerhalb der KursID...
Bei GROUP-BY m�ssen alle Spalten der SELECT-Klausel, die nicht in GROUP-BY auftauchen, eine Aggregatfunktion haben. Also bekommst Du dann auch nicht alle Termine eines Kurses angezeigt. > Und Sortierung war einmal gefordert, dann wieder nicht... Auf jeden fall > ist das jetzt nach kursID sortiert und gibt zu jedem kurs das f�hste > startdatum... > > 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? > > Also das sieht alles andere als performant aus... ;-) > Jedenfalls im vergleich zu einer l�sung mit nur einem join... > Das subselect wird ja f�r jeden kurs aufgerufen... Das Sub-Select wird f�r jeden Kurs und nicht f�r jeden Kursbeginn aufgerufen, wie bei Deinem GROUP-BY, also so wenig wie n�tig, oder? Alternativ kann View1 mit GROUP-BY gestaltet werden. Aber auch nur, wenn es als separate View definiert wird, denn mit GROUP-BY bekommst Du ohne zus�tzliche View/Sub-Select auch nicht alle Kurstermine. Ich bleibe dabei: GROUP BY ist hier kontraproduktiv (au�er in View1). > Und wozu die zus�tzliche abfrage? > Alles geforderte - kurs & fr�hster termin - passt in einen view.. Gefordert war doch: Kurs C 01.02.2003 - 14.02.2003 01.04.2004 - 13.04.2003 ... Kurs B 10.03.2003 - 23.03.2003 14.04.2003 - 27.04.2003 ... Kurs A 04.04.2003 - 17.04.2003 ... Also braucht's eine zus�tzliche View f�r die Performanz, weil nach dem kleinsten Starttermin eines Kurses und dann nach den Startterminen sortiert werden soll. Vielleicht kann Markus ja mal alle Varianten im Query-Analyzer checken? Deine Variante, Claudius, ist nur deshalb schneller, weil sie nur das halbe Ergebnis (nicht alle Kurstermine) liefert. ;-) 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
