Использование третьего синтаксиса SELECT в ADO
Автор:Eve Cole
Время обновления:2009-05-30 19:54:33
В продолжение предыдущей статьи:
ЗАКАЗАТЬ ПО
В предложении ORDER BY вы можете установить поле сортировки.
В выражении SQL предложение ORDER BY обычно располагается последним.
Если вы хотите сортировать по убыванию (Z~A, 9~0), вам необходимо добавить слово DESC в конце каждого поля, которое вы хотите отсортировать по убыванию. например:
ВЫБЕРИТЕ имя
ОТ сотрудников
СОРТИРОВАТЬ ПО зарплатеDESC, возрасту
Указывает, что поле [Зарплата] отсортировано по убыванию, а поле [Возраст] — по возрастанию.
Отсортированные поля в предложении ORDER BY не могут содержать типы полей MEMO или типы объектов OLE, в противном случае произойдет ошибка.
Если в предложение ORDER BY включено несколько полей, для сортировки используется первое поле после ORDER BY. Затем, если в этом поле есть одинаковые записи данных, для сортировки будет использоваться второе поле и так далее.
ГРУППИРОВАТЬ ПО
GROUP BY будет собирать статистику по результатам запроса. Синтаксис следующий:
ВЫБРАТЬ список полей
ИЗ таблицы
ГДЕ критерии
[ГРУППИРОВАТЬ ПО списку полей группы]
Используя предложение WHERE, вы можете установить данные, которые вы не хотите учитывать, а с помощью предложения HAVING вы можете фильтровать поля, которые уже были подсчитаны.
Статистику нельзя вести по полям типа поля MEMO или типа объекта OLE, иначе возникнет ошибка.
Например, программа ASP rs22.asp выглядит следующим образом: [ВЫБРАТЬ категорию, средняя цена (цена) как среднее значение для группы продуктов по категории] Используйте GROUP BY, чтобы составить статистику [Категория] по результатам запроса и вычислить статистику каждой категории. для усреднения цены Avg (Цена):
<%
Установите conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Установите rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = «ВЫБРАТЬ категорию, среднюю цену (цену) как среднее значение для группы продуктов по категории»
Response.Write "<p>Avg(price)"
rs2.Open SqlStr,conn1,1,1
Делайте пока не rs2.EOF
Ответ. Напишите "<BR>" & rs2("вид") & ":" & rs2("среднее").
rs2.MoveNext
Петля
rs2.Close%>
В приведенной выше программе ASP rs22.asp клиент использует браузер для просмотра результатов выполнения и отображения средней цены на основе статистики [категория].
Давайте рассмотрим пример. Например, программа ASP rs22.asp выглядит следующим образом: [ВЫБРАТЬ категорию, сумму (количество*цена) как общее количество из группы продуктов по категории] Используйте GROUP BY, чтобы создать статистику [Категория] по запросу. результаты и подсчитайте каждую категорию. Общая стоимость Сумма (количество * цена), умноженная на количество и цену:
<%
Установите conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Установите rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = «ВЫБРАТЬ категорию, сумму (количество*цена) как общую сумму из группы продуктов по категории»
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Sum(количество*цена)"
Делайте пока не rs2.EOF
Response.Write "<BR>" & rs2("категория") & ": " & rs2("всего")
rs2.MoveNext
Петля
rs2.Close%>
Для указанной выше программы ASP rs22.asp используйте браузер на клиенте, чтобы просмотреть результаты выполнения и отобразить общую цену на основе [категория].
Groupfieldlist — это названия полей, используемых для статистики, максимум 10 полей.
Порядок имен полей в списке групповых полей будет определять статистический уровень: от самого высокого до самого низкого уровня.
Наконец, например, программа ASP rs22.asp выглядит следующим образом: [ВЫБЕРИТЕ имя, предмет, средний балл (оценка) Как среднее Из экзамена Группа по имени, предмету] Используйте GROUP BY, чтобы получить результаты запроса на основе [имя] и [ предмет] статистика, статистика каждого Статистический [средний] балл Avg (балл):
<%
Установите conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Установите rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = «ВЫБРАТЬ имя, предмет, средний балл (балл) как среднее значение по группе экзаменов по имени, предмету»
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Группировать по имени, теме"
Делайте пока не rs2.EOF
Response.Write "<BR>" & rs2("Имя") & " " & rs2("Тема") & " Среднее: " & rs2("Среднее")
rs2.MoveNext
Петля
rs2.Закрыть
%>
Приведенная выше программа ASP rs22.asp использует браузер на стороне клиента для просмотра результатов выполнения и отображения [среднего] балла на основе [имя] и [тема].
Вы это выучили?