Рассылка статей | Выпуск 102. Функции группировки в SQL запросах
Leadersoft.ru

Рассылка статей

Программирование и готовые решения

В этом разделе сайта дается информация от https://leadersoft.ru о статьях по программированию, ответах на вопросы и др. Статьи рассылаются подписчикам и публикуются на разных сервисах. Возможно некоторая информация устарела и ссылки не работают, но эти сведения могут быть полезны, если Вы серьезно занимаетесь разработкой баз данных

Выпуск 102. Функции группировки в SQL запросах

Введение
Сильной стороной Microsoft Access является использование функций в запросах SQL. Вы можете ссылаться на поля в формах приложения, можете создать свою функцию на VBA или использовать встроенные функции в Access. Пример.
SELECT [КАССА примеры].Дата FROM [КАССА примеры] WHERE ((([КАССА примеры].Дата)>Date()+10));

 

Встроенные функции

Самыми распространенными функциями в запросах на группировку являются функции, которые возвращают некоторый итоговый результат для нескольких записей. Вот примеры.

  • Функция Sum возвращает сумму значений содержащихся в заданном поле запроса.
  • Функция Count вычисляет количество записей, возвращенных запросом.
  • Функции Min, Max возвращают минимальное или максимальное из значений, содержащихся в заданном поле запроса.
  • Функции First и Last возвращают значение поля из первой или последней записи в результирующем наборе, который возвращается запросом.

Примеры использования простейшей функции суммирования и  подсчета записей в операциях по кассе показаны ниже

  • SELECT [КАССА примеры].дбСчет AS Приход, Sum([КАССА примеры].Сумма) AS SumСумма FROM [КАССА примеры] GROUP BY [КАССА примеры].дбСчет;
  • SELECT Count(*) AS [ЧислоБольшихОпераций] FROM [КАССА примеры] WHERE [Сумма] > 10000

Функции группировки
Кроме этих функций, которые есть и в Access, SQL Server, MySQL и других базах данных, Access предлагает функции с фильтрацией, т.е. функции DSum, DCount и другие. Их используют уже реже, но значение их для построения интерфейса имеет большое значение, т.к. можно значительно упростить код приложения, если знать как их использовать. Например, указанный ниже запрос выводит число операций по кассе, где сумма больше 10 тысяч рублей. Обратите внимание, что этот запрос возвращает 1 поле, которое может использоваться в SQL запросах, а не только в VBA, а фильтр записей ("[Сумма]>10000") имеет разные виды реализаций. Примеры
  • Me.Результат = DCount("Сумма","Касса примеры","[Сумма] > 10000") AS ЧислоБольшихОпераций;
  • Me.Результат = DCount("Сумма", "Касса примеры", "[Сумма] > " & Forms("Форма1")!МаксимальнаяСумма)
  • Me.Результат = DCount("Сумма", "Касса примеры", "[Сумма] > " & GetMaxSum())
  • Public Function GetMaxSum() As Currency
        GetMaxSum = Forms("Форма1")!МаксимальнаяСумма
    End Function
  • Me.Результат = DLookUp("Format([Сумма],""0.0"")&"" "" & [дбСчет]","Касса примеры","[Сумма] > 10000")
Обратите внимание на последний пример, там где должно стоять ! 1 поле, мы подставили выражение, используя ряд полей Сумма и дбСчет. Это позволяет одним запросом сразу запросить несколько полей из базы данных, а потом из этих данных найти нужное поле, например, так buffer = Split(Me.Результат," ")
Примечание

Таким образом, используя эти функции можно построить простейший код на VBA, без применения серверных процедур с параметрами и команд из ADO библиотеки.

Разработка баз данных на заказ
На сайте leadersoft.ru можно заказать базу данных на Access или динамический сайт с базой SQL Server. Необходимо заранее продумать и подготовить письменные материалы, чтобы сократить время на подготовку проекта, и тем самым уменьшить расходы на проектирование. Сейчас разработаны много новых интересных решений.
  • Это рассылка SMS сообщений из базы данных через специальный интерфейс. Например, поздравление с днем рождением, напоминания о платеже и т.п.,
  • импорт из Сбербанка (Банка Москвы) платежей и сохранение их базе Access в разных таблицах без дублирования информации о клиентах и платежах,
  • перевод баз данных из Access в SQL Server для разных офисов, 
  • Подключение к базам MySQL, SQL Server, Access, Excel (только чтение) из одного проекта с возможностью редактирования, добавления и удаления записей.
  • Работа с электронными кошельками типа webmoney, w1 и т.п.
  • Импорт больших xml файлов с удаленных сайтов и из каталога программы.

 

Лицензия на источник информации
    Все права на статью принадлежат Leadersoft.ru. Статья предназначена только для публикации среди подписчиков subscribe.ru. Никто без письменного разрешения leadersoft.ru не может продавать, перепечатывать, сдавать в аренду или другим образом извлекать выгоду, используя информацию из этой и других статьях данной рассылки.

Добавить комментарий

Loading