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

Antwort per Email an