Verwendung der SELECT-Syntax drei in ADO
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:54:33
Fortsetzung des vorherigen Artikels:
BESTELLEN NACH
Mit der ORDER BY-Klausel können Sie das Sortierfeld festlegen.
In einem SQL-Ausdruck steht die ORDER BY-Klausel normalerweise an letzter Stelle.
Wenn Sie in absteigender Reihenfolge sortieren möchten (Z~A, 9~0), müssen Sie das Wort DESC am Ende jedes Felds hinzufügen, das in absteigender Reihenfolge sortiert werden soll. Zum Beispiel:
Namen auswählen
VON Mitarbeitern
ORDNUNG NACH GehaltBESCHREIBUNG, Alter
Zeigt an, dass das Feld [Gehalt] in absteigender Reihenfolge und das Feld [Alter] in aufsteigender Reihenfolge sortiert wird.
Die sortierten Felder in der ORDER BY-Klausel dürfen keine MEMO-Feldtypen oder OLE-Objekttypen enthalten, da sonst ein Fehler auftritt.
Wenn mehrere Felder in der ORDER BY-Klausel enthalten sind, wird das erste Feld nach ORDER BY zum Sortieren verwendet. Wenn dann in diesem Feld identische Datensätze vorhanden sind, wird nach dem zweiten Feld sortiert und so weiter.
GRUPPE NACH
GROUP BY erstellt Statistiken zu den Abfrageergebnissen. Die Syntax lautet wie folgt:
Feldliste AUSWÄHLEN
VON Tabelle
WO-Kriterien
[GROUP BY Gruppenfeldliste]
Mit der WHERE-Klausel können Sie Daten festlegen, die Sie nicht zählen möchten, und mit der HAVING-Klausel können Sie bereits gezählte Felder filtern.
Für Felder vom Typ MEMO-Feld oder OLE-Objekttyp können keine Statistiken erstellt werden, da sonst ein Fehler auftritt.
Das ASP-Programm rs22.asp lautet beispielsweise wie folgt: [SELECT Category, Avg (Price) As Average From Product Group By Category] Verwenden Sie GROUP BY, um [Category]-Statistiken für die Abfrageergebnisse zu erstellen und die Statistiken für jede Kategorie zu berechnen um den Preis zu mitteln Avg (Preis):
<%
Setze conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setze rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = „Kategorie auswählen, Durchschn. (Preis) als Durchschnitt aus Produktgruppe nach Kategorie“
Response.Write „<p>Durchschn.(Preis)“
rs2.Open SqlStr,conn1,1,1
Tun Sie es zwar nicht mit rs2.EOF
Response.Write "<BR>" & rs2("kind") & ": " & rs2("average")
rs2.MoveNext
Schleife
rs2.Close%>
Für das obige ASP-Programm rs22.asp verwendet der Client einen Browser, um die Ausführungsergebnisse zu durchsuchen und den Durchschnittspreis basierend auf [Kategorie]-Statistiken anzuzeigen.
Schauen wir uns ein Beispiel an: Das ASP-Programm rs22.asp sieht wie folgt aus: [SELECT Category, Sum(Quantity*Price) As Total From Product Group By Category] Verwenden Sie GROUP BY, um [Kategorie]-Statistiken für die Abfrage zu erstellen Ergebnisse und zählen Sie die Gesamtpreissumme (Menge * Preis) multipliziert mit Menge und Preis:
<%
Setze conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setze rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = „Kategorie auswählen, Summe (Menge*Preis) als Gesamtsumme aus Produktgruppe nach Kategorie“
rs2.Open SqlStr,conn1,1,1
Response.Write „<p>Summe(Menge*Preis)“
Tun Sie es zwar nicht mit rs2.EOF
Response.Write "<BR>" & rs2("category") & ": " & rs2("total")
rs2.MoveNext
Schleife
rs2.Close%>
Verwenden Sie für das oben genannte ASP-Programm rs22.asp den Browser auf dem Client, um die Ausführungsergebnisse zu durchsuchen und den Gesamtpreis basierend auf [Kategorie] anzuzeigen.
Groupfieldlist ist der Name der Felder, die für Statistiken verwendet werden, mit maximal 10 Feldern.
Die Reihenfolge der Feldnamen in der Gruppenfeldliste bestimmt die statistische Ebene, von der höchsten zur niedrigsten Ebene.
Schließlich lautet das ASP-Programm rs22.asp beispielsweise wie folgt: [SELECT name, subject, Avg (score) As Average From exam Group By name, subject] Verwenden Sie GROUP BY, um die Abfrageergebnisse basierend auf [Name] und [ Betreff]-Statistiken, Statistiken zu jedem statistischen [Durchschnitt]-Score Durchschnitt (Score):
<%
Setze conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setze rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = „SELECT Name, Subject, Avg (Score) As Average From Exam Group By Name, Subject“
rs2.Open SqlStr,conn1,1,1
Response.Write „<p>Gruppieren nach Name, Betreff“
Tun Sie es zwar nicht mit rs2.EOF
Response.Write "<BR>" & rs2("Name") & " " & rs2("Betreff") & " Average: " & rs2("Average")
rs2.MoveNext
Schleife
rs2.Schließen
%>
Das obige ASP-Programm rs22.asp verwendet einen Browser auf der Clientseite, um die Ausführungsergebnisse zu durchsuchen und die [durchschnittliche] Punktzahl basierend auf [Name] und [Betreff] anzuzeigen.
Hast du es gelernt?