![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Инструкция TRANSFORM, примеры
Использованиепредложения SQL TRANSFORM для создания перекрестного запроса, демонстрирующего число заказов, принятых каждым сотрудником в каждом квартале 1994 г. Для выполнения данной процедуры требуется функция SQLTRANSFORMOutput. Sub TransformX1() Dim dbs As Database Dim strSQL As String Dim qdfTRANSFORM As QueryDef strSQL = " PARAMETERS prmYear SHORT; TRANSFORM " _ & " Count(КодЗаказа) " _ & " SELECT Имя & " " " " & Фамилия AS " _ & " ФИО FROM Сотрудники INNER JOIN Заказы " _ & " ON Сотрудники.КодСотрудника = " _ & " Заказы.КодСотрудника WHERE DatePart " _ & " (" " yyyy" ", ДатаРазмещения) = [prmYear] " strSQL = strSQL & " GROUP BY Имя & " _ & " " " " " & Фамилия " _ & " ORDER BY Имя & " " " " & Фамилия " _ & " PIVOT DatePart(" " q" ", ДатаРазмещения)"
' Укажите в следующей строке путь к базе данных " Борей" ' на вашем компьютере. Set dbs = OpenDatabase(" Борей.mdb") Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Set qdfTRANSFORM = dbs.CreateQueryDef _ (" ", strSQL)
SQLTRANSFORMOutput qdfTRANSFORM, 1994
dbs.Close
End Sub В следующем примере предложение SQL TRANSFORM используется для создания более сложного перекрестного запроса, демонстрирующего общую сумму заказов, принятых каждым сотрудником в каждом квартале 1994 г. Для выполнения данной процедуры требуется функция SQLTRANSFORMOutput. Sub TransformX2() Dim dbs As Database Dim strSQL As String Dim qdfTRANSFORM As QueryDef
strSQL = " PARAMETERS prmYear SHORT; TRANSFORM " _ & " Sum(Всего) SELECT Имя & " " " " " _ & " & Фамилия AS ФИО " _ & " FROM Сотрудники INNER JOIN " _ & " (Заказы INNER JOIN [Сумма заказов] " _ & " ON Заказы.КодЗаказа = " _ & " [Сумма заказов].КодЗаказа) " _ & " ON Сотрудники.КодСотрудника = " _ & " Заказы.КодСотрудника WHERE DatePart" _ & " (" " yyyy" ", ДатаРазмещения) = [prmYear] " strSQL = strSQL & " GROUP BY Имя & " " " " " _ & " & Фамилия " _ & " ORDER BY Имя & " " " " & Фамилия " _ & " PIVOT DatePart(" " q" ", ДатаРазмещения)"
' Укажите в следующей строке путь к базе данных " Борей" ' на вашем компьютере. Set dbs = OpenDatabase(" Борей.mdb") Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:— Разгрузит мастера, специалиста или компанию; — Позволит гибко управлять расписанием и загрузкой; — Разошлет оповещения о новых услугах или акциях; — Позволит принять оплату на карту/кошелек/счет; — Позволит записываться на групповые и персональные посещения; — Поможет получить от клиента отзывы о визите к вам; — Включает в себя сервис чаевых. Для новых пользователей первый месяц бесплатно. Зарегистрироваться в сервисе
SQLTRANSFORMOutput qdfTRANSFORM, 1994
Set qdfTRANSFORM = dbs.CreateQueryDef _ (" ", strSQL) dbs.Close
End Sub
Function SQLTRANSFORMOutput(qdfTemp As QueryDef, _
intYear As Integer)
Dim rstTRANSFORM As Recordset Dim fldLoop As Field Dim booFirst As Boolean
qdfTemp.PARAMETERS! prmYear = intYear Set rstTRANSFORM = qdfTemp.OpenRecordset()
Debug.Print qdfTemp.SQL Debug.Print Debug.Print,, " Квартал"
With rstTRANSFORM booFirst = True For Each fldLoop In.Fields If booFirst = True Then Debug.Print fldLoop.Name Debug.Print,; booFirst = False Else
Debug.Print, fldLoop.Name; End If Next fldLoop Debug.Print
Do While Not.EOF booFirst = True For Each fldLoop In.Fields If booFirst = True Then Debug.Print fldLoop Debug.Print,; booFirst = False Else Debug.Print, fldLoop; End If Next fldLoop Debug.Print .MoveNext Loop End With End Function Значения, возвращенные аргументом поле, используются в качестве заголовков столбцов в результирующем наборе запроса. Например, продажи по месяцам в перекрестном запросе образуют результирующую таблицу из 12 столбцов. Аргумент поле можно ограничить, чтобы создать заголовки из фиксированных значений (значение_1, значение_2), перечисленных в необязательном предложении IN. Кроме того, фиксированные заголовки, которым не соответствуют реальные данные, можно использовать для создания дополнительных столбцов. Совет. Существует возможность вывести данные в перекрестной таблице без создания в базе данных отдельного запроса. Для этого следует использовать мастер сводных таблиц. В сводной таблице пользователь имеет возможность изменять заголовкистрок или столбцов, что позволяет анализировать данные различными способами.
|