[SQL/ASP] Anweisungen zusammenfassen

Ich programmiere ASP Seiten mit Datenbankanbindung (Access).
Bringt es Performancevorteile, wenn man aus mehreren ähnlichen SQL Anweisungen eine machen würde?
Die unteren Anweisungen dauern nämlich so ihre Zeit:

for i = 1 to 52
 sql = ""
 sql = sql & "**SELECT Count(PageViewID) AS PageCount**"
 sql = sql & " **FROM tblStats\_PageViews**"
 sql = sql & "**WHERE (SID=**"&SID&"**) AND (DateTime"&StopDate&"#) AND (DateTime\>#"&StartDate&"#) AND (DATEPART('ww',DateTime)="&i&")"  
 rs.open sql ...  
next**  

Ich verarbeite immer den Wert PageCount , den ich hier für jede Woche des Jahres bekomme, also 52 mal.

Meine Frage: Kann man das auch mit einer SQL Anweisung machen, die mir dann alle 52 Werte übergibt? Wäre das schneller, oder geht’s noch anders?

Danke im Vorraus!

Enno

Hallo Enno,
Probiers mal mit Gruppieren:

sql = "SELECT Count(PageViewID) AS PageCount **,**"
sql = sql & " **DATEPART('ww',DateTime) As Woche**"
sql = sql & "FROM tblStats\_PageViews "
sql = sql & "WHERE (SID="&SID&") AND
(DateTime#"&StartDate&"#) "
sql = sql & "**GROUP BY DATEPART('ww',DateTime)** 


> rs.open sql ...

Die Abfrage liefert eben 52 Datesätze.

Ich verarbeite immer den Wert PageCount , den ich hier
für jede Woche des Jahres bekomme, also 52 mal.

Ja, und das ist m.E. ein schleichender Fehler, da die Wochenzahl 53 betragen kann. Durch die Gruppierung bekommst Du auch die letzte Woche angezeigt.

Wäre das schneller, oder
geht’s noch anders?

Das müßtest Du ausprobieren. Ich würde generell sagen, daß es schneller gehen muß (Du sparst Dir das 52fache Parsen und Executen), aber bei Access kann man nie wissen…

Danke im Vorraus!

Bitte bitte

Gruß

J.

Hallo José,

danke für den Tipp, geht wirklich um einiges schneller!

Enno