Usando a sintaxe SELECT três no ADO
Autor:Eve Cole
Data da Última Atualização:2009-05-30 19:54:33
Continuando com o artigo anterior:
ENCOMENDAR POR
Cláusula ORDER BY, você pode definir o campo de classificação.
Em uma expressão SQL, a cláusula ORDER BY geralmente é colocada por último.
Se quiser classificar em ordem decrescente (Z~A, 9~0), você deve adicionar a palavra DESC no final de cada campo que deseja classificar em ordem decrescente. por exemplo:
SELECIONE o nome
DE funcionários
ORDEM POR salárioDESC, idade
Indica que o campo [Salário] está classificado em ordem decrescente e o campo [Idade] está classificado em ordem crescente.
Os campos classificados na cláusula ORDER BY não podem conter tipos de campo MEMO ou tipos de objeto OLE, caso contrário ocorrerá um erro.
Quando vários campos são incluídos na cláusula ORDER BY, o primeiro campo após ORDER BY é usado para classificação. Então, se houver registros de dados idênticos neste campo, o segundo campo será usado para ordenar e assim por diante.
Agrupar por
GROUP BY fará estatísticas sobre os resultados da consulta. A sintaxe é a seguinte:
SELECIONE lista de campos
DA tabela
ONDE critérios
[GRUPO POR lista de campos de grupo]
Usando a cláusula WHERE, você pode definir dados que não deseja contar e, usando a cláusula HAVING, pode filtrar campos que já foram contados.
As estatísticas não podem ser feitas em campos do tipo MEMO ou tipo de objeto OLE, caso contrário ocorrerá um erro.
Por exemplo, o programa ASP rs22.asp é o seguinte, [SELECT Category, Avg (Price) As Average From Product Group By Category] Use GROUP BY para fazer estatísticas de [Category] nos resultados da consulta e calcular as estatísticas de cada categoria para calcular a média do preço médio (preço):
<%
Definir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Driver Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;"
Definir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECIONE categoria, média (preço) como média do grupo de produtos por categoria"
Response.Write "<p>Média(preço)"
rs2.Open SqlStr,conn1,1,1
Faça enquanto não rs2.EOF
Response.Write "<BR>" & rs2("tipo") & ": " & rs2("média")
rs2.MoveNext
Laço
rs2.Fechar%>
Para o programa ASP rs22.asp acima, o cliente usa um navegador para navegar pelos resultados da execução e exibir o preço médio com base nas estatísticas de [categoria].
Vejamos um exemplo. Por exemplo, o programa ASP rs22.asp é o seguinte, [SELECT Category, Sum(Quantity*Price) As Total From Product Group By Category] Use GROUP BY para criar estatísticas de [Category] na consulta. resultados e conte cada categoria A soma do preço total (quantidade * preço) multiplicada pela quantidade e preço:
<%
Definir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Driver Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;"
Definir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECIONE Categoria, Soma(Quantidade*Preço) Como Total do Grupo de Produtos por Categoria"
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Soma(quantidade*preço)"
Faça enquanto não rs2.EOF
Response.Write "<BR>" & rs2("categoria") & ": " & rs2("total")
rs2.MoveNext
Laço
rs2.Fechar%>
Para o programa ASP rs22.asp acima, use o navegador do cliente para navegar pelos resultados da execução e exibir o preço total com base em [categoria].
Groupfieldlist é o nome dos campos utilizados para estatísticas, com no máximo 10 campos.
A ordem dos nomes dos campos no groupfieldlist determinará o nível estatístico, do nível mais alto para o mais baixo.
Finalmente, por exemplo, o programa ASP rs22.asp é o seguinte, [SELECT nome, assunto, média (pontuação) como média do exame Grupo por nome, assunto] Use GROUP BY para fazer os resultados da consulta com base em [nome] e [ assunto] estatísticas, estatísticas de cada pontuação estatística [média] Média (pontuação):
<%
Definir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Driver Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;"
Definir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECIONE Nome, Assunto, Média (Pontuação) Como Média do Grupo de Exames por Nome, Assunto"
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Agrupar por nome, assunto"
Faça enquanto não rs2.EOF
Response.Write "<BR>" & rs2("Nome") & " " & rs2("Assunto") & " Média: " & rs2("Média")
rs2.MoveNext
Laço
rs2.Fechar
%>
O programa ASP rs22.asp acima usa um navegador no lado do cliente para navegar pelos resultados da execução e exibir a pontuação [média] com base em [nome] e [assunto].
Você aprendeu isso?