Utilisation de la syntaxe SELECT trois dans ADO
Auteur:Eve Cole
Date de mise à jour:2009-05-30 19:54:33
Suite de l'article précédent :
COMMANDER PAR
ORDER BY, vous pouvez définir le champ de tri.
Dans une expression SQL, la clause ORDER BY est généralement placée en dernier.
Si vous souhaitez trier par ordre décroissant (Z~A, 9~0), vous devez ajouter le mot DESC à la fin de chaque champ que vous souhaitez trier par ordre décroissant. Par exemple:
CHOISIR le nom
DES employés
COMMANDER PAR salaireDESC, âge
Indique que le champ [Salaire] est trié par ordre décroissant et que le champ [Âge] est trié par ordre croissant.
Les champs triés dans la clause ORDER BY ne peuvent pas contenir de types de champ MEMO ou de types d'objet OLE, sinon une erreur se produira.
Lorsque plusieurs champs sont inclus dans la clause ORDER BY, le premier champ après ORDER BY est utilisé pour le tri. Ensuite, s'il y a des enregistrements de données identiques dans ce champ, le deuxième champ sera utilisé pour trier, et ainsi de suite.
GROUPER PAR
GROUP BY fera des statistiques sur les résultats de la requête. La syntaxe est la suivante :
SELECT liste de champs
DE la table
Critères OÙ
[GROUPE PAR liste de champs de groupe]
À l'aide de la clause WHERE, vous pouvez définir les données que vous ne souhaitez pas compter et à l'aide de la clause HAVING, vous pouvez filtrer les champs qui ont déjà été comptés.
Les statistiques ne peuvent pas être faites sur les champs de type champ MEMO ou de type objet OLE, sinon une erreur se produira.
Par exemple, le programme ASP rs22.asp est le suivant : [SELECT Category, Avg (Price) As Average From Product Group By Category] Utilisez GROUP BY pour créer des statistiques [Catégorie] sur les résultats de la requête et calculer les statistiques de chaque catégorie. pour faire la moyenne du prix Avg (Prix) :
<%
Définir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Définir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT Catégorie, Moyenne (Prix) comme moyenne du groupe de produits par catégorie"
Réponse.Écrivez "<p>Moyenne (prix)"
rs2.Open SqlStr,conn1,1,1
Faire sans rs2.EOF
Réponse.Écrire "<BR>" & rs2("kind") & ": " & rs2("average")
rs2.MoveNext
Boucle
rs2.Fermer%>
Pour le programme ASP rs22.asp ci-dessus, le client utilise un navigateur pour parcourir les résultats d'exécution et afficher le prix moyen basé sur les statistiques de [catégorie].
Regardons un exemple. Par exemple, le programme ASP rs22.asp est le suivant : [SELECT Category, Sum(Quantity*Price) As Total From Product Group By Category] Utilisez GROUP BY pour créer des statistiques [Catégorie] sur la requête. résultats, et comptez chaque catégorie. Le prix total Somme (quantité * prix) multiplié par la quantité et le prix :
<%
Définir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Définir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT Catégorie, Somme (Quantité*Prix) comme total du groupe de produits par catégorie"
rs2.Open SqlStr,conn1,1,1
Réponse.Écrivez "<p>Somme (quantité*prix)"
Faire sans rs2.EOF
Réponse.Écrivez "<BR>" & rs2("category") & ": " & rs2("total")
rs2.MoveNext
Boucle
rs2.Fermer%>
Pour le programme ASP rs22.asp ci-dessus, utilisez le navigateur du client pour parcourir les résultats d'exécution et afficher le prix total en fonction de [catégorie].
Groupfieldlist est le nom des champs utilisés pour les statistiques, avec un maximum de 10 champs.
L'ordre des noms de champs dans la liste de champs de groupe déterminera le niveau statistique, du niveau le plus élevé au niveau le plus bas.
Enfin, par exemple, le programme ASP rs22.asp est le suivant : [SELECT nom, sujet, moyenne (score) comme moyenne de l'examen Group By nom, sujet] Utilisez GROUP BY pour baser les résultats de la requête sur [nom] et [ sujet] statistiques, statistiques de chaque score statistique [moyen] Moy (score) :
<%
Définir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Définir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT Nom, Sujet, Moyenne (Score) comme moyenne du groupe d'examen par nom, Sujet"
rs2.Open SqlStr,conn1,1,1
Réponse.Écrivez "<p>Grouper par nom, sujet"
Faire sans rs2.EOF
Réponse.Écrire "<BR>" & rs2("Nom") & " " & rs2("Sujet") & " Moyenne : " & rs2("Moyenne")
rs2.MoveNext
Boucle
rs2.Fermer
%>
Le programme ASP ci-dessus, rs22.asp, utilise un navigateur côté client pour parcourir les résultats d'exécution et afficher le score [moyen] basé sur [nom] et [sujet].
L'avez-vous appris ?