Sql

Перекрестный запрос sql пример: Улучшение наглядности сводных данных с помощью перекрестного запроса

Содержание

Перекрестный запрос. Access 2002: Самоучитель

Перекрестный запрос

Перекрестные запросы позволяют подсчитывать данные по двум и более переменным. В ситуациях, подобных нашей, перекрестные запросы компактнее, чем обычные.

Как правило, при перекрестном запросе первый столбец получаемой в результате таблицы отображает значения одной переменной – это заголовки строк. В первой строке этой таблицы приводятся значения второй переменной – заголовки столбцов. На пересечении строк и столбцов находится сумма (количество значений, среднее и т. п.) по третьей переменной. Чтобы отразить все это в отчете, можно создать сводную таблицу. Когда перекрестный запрос выполнен, в результирующей выборке заголовки строк и столбцов часто представляют собой поля, содержащие текст или даты. Поля значений обычно относятся к числовому или денежному типу. Поясним эти положения на конкретном примере.

Построение перекрестного запроса с использованием мастера

Задача, для решения которой потребуется перекрестный запрос, формулируется так: необходимо выяснить, сколько аварий (чрезвычайных ситуаций) определенных видов произошло на территории разных субъектов Российской Федерации (краев и областей).

Источником информации послужит таблица Fiie1.

Формирование перекрестного запроса лучше всего начать с помощью мастера запросов. Открыв вкладку Запросы окна базы данных, с помощью кнопки

выйдите в окно Новый запрос и в нем выберите опцию Мастер перекрестных запросов (рис. 11.64). На этом этапе надо выбрать запрос, который содержит поля, используемые в перекрестном запросе. В нашем случае следует выбрать таблицу Fiie1. Если в какой-либо ситуации одной таблицы будет мало, то сформируйте запрос, содержащий все нужные вам поля, а затем используйте его как основу для создания перекрестного запроса.

Рис. 11.64

Когда вы сделаете выбор, на экране появится следующее окно мастера перекрестных запросов (см. рис. 11.65), где вам следует решить, значения каких полей вы хотите оформить в виде заголовков строк. Всего можно указать не более трех полей. Для нашей конкретной задачи в качестве заголовков строк послужат значения поля

Регион. Щелкните по кнопке Далее, а затем укажите поля (не больше трех), значения которых станут заголовками столбцов. В данном случае будет выбрано поле Наименование ЧС. После этого вы окажетесь в следующем окне мастера (см. рис. 11.66), где предстоит определить, что же вы хотите вычислить для каждой ячейки, расположенной на пересечении столбца и строки. Вы уже использовали два поля: Название области – для заголовков строк, а Наименование ЧС – для заголовков столбцов.

Рис. 11.65

Рис. 11.66

Теперь понадобится третья переменная, значения которой можно подсчитывать, причем они должны соответствовать значениям первых двух полей. Главное, чтобы это третье указанное поле не имело пропусков, то есть нулевых значений. Следовательно, лучше всего подойдет поле

Номер. В качестве функции для подсчета числа значений выберите Число (одна из функций групповой обработки данных). Иначе говоря, в конце концов будет определено количество значений поля Номер для каждой ячейки, которая находится на пересечении столбца (ЧС определенного вида) и строки (того или иного региона Российской Федерации) – рис. 11.66. Теперь, когда вы подготовили все необходимое для создания запроса, щелкните по кнопке Далее.

В результате на экране появится окно (см. рис. 11.67), где в формируемый запрос нужно внести последние уточнения. Во-первых, его надо назвать. В принципе это ваше дело, но мы бы посоветовали принять имя, которое по умолчанию предлагает Access 2002:

File1-Перекрестный. Затем надо определить, чего вы хотите: выполнить запрос или изменить его оформление. Выберите соответствующую позицию переключателя. Если вы собираетесь выполнить запрос и дизайн вас не интересует, откажитесь от следующего предложения мастера: вывести инструкцию по работе с запросом. Теперь остается только щелкнуть по кнопке Далее, и запрос будет запущен на выполнение. А вот дальше в нашем размеренном сюжете возникает неожиданная интрига – сообщение В перекрестном запросе слишком много заголовков столбцов – 507. Это означает, что последующее выполнение запроса невозможно (см. рис. 11.68). Озабоченность Access вполне понятна.

Рис. 11.67

Рис. 11.68

Фактически вы объявили заголовками столбцов или полей все наименования ЧС в таблице, кроме их дубликатов, которые система не пропустит (вместе с повторяющимися именами таких заголовков было бы не 507, а значительно больше). Действительно, многовато. Объяснение здесь простое: при формировании перекрестного запроса вы не вводили каких-либо критериев отбора. Впрочем, при использовании мастера перекрестных запросов этого сделать все равно нельзя. Если вы хотите задать такие условия, то нужно сформировать обычный запрос.

Ввод условий отбора записей в конструкторе запросов

В окне базы данных на вкладке Запрос откройте ваш перекрестный запрос в режиме конструктора (см. рис. 11.69). Теперь надо задать критерии отбора записей. Будем считать, что нас по-прежнему интересует количество ЧС по регионам, но только если эти ЧС связаны с пожарами.

Рис. 11.69

Поэтому введите в запрос условие *пожар*, как показано на рис. 11.70. Если вы отдадите команду на выполнение запроса, то в результате получите таблицу, фрагмент которой приведен на рис. 11.71.

Рис. 11.70

Рис. 11.71

Предположим, необходимо видоизменить запрос. Нужна справка о числе ЧС по регионам, но теперь нас интересуют аварии, связанные не только с пожарами, но и со взрывами. Кроме условия *пожар* введите еще один критерий отбора – *взрыв*, используя схему «ИЛИ». Иными словами, вы запрашиваете число аварий по регионам, в которых произошли либо пожары, либо взрывы. Если бы вы применили схему «И», система Access 2002 стала бы отбирать сведения из регионов, где произошли и пожары, и… (а это уже совсем другой разговор). Запрос будет выглядеть так, как показано на рис. 11.72.

Рис. 11.72

Результат этого дополненного запроса вы видите на рис. 11.73, где показан тот же фрагмент таблицы, что и в предыдущем случае. Во-первых, число аварий по регионам возросло (Иркутская, Кемеровская области). Во-вторых, увеличился список регионов, например добавилась Мурманская область, которой раньше не было в этом перечне.

Рис. 11.73

Итак, в настоящем разделе мы подробно рассмотрели структуру перекрестного запроса и уяснили для себя существенное правило: чтобы обработать группу записей и получить справку по множеству объектов, надо сначала четко определить само множество. В данном конкретном примере нам необходимо суммарное число ЧС определенного вида по разным российским регионам. Значит, в первую очередь надо получить такие сведения по каждому из этих регионов. В ряде случаев для решения указанной задачи придется создать запрос на выборку.

Данный текст является ознакомительным фрагментом.

11.3. Запрос и изменение информации inode

11.3. Запрос и изменение информации inode 11.3.1. Поиск информации inode В начале этой главы информационный узел файла (inode) был представлен как структура данных, которая отслеживает информацию о файле, независимо от представления ее для процесса. Например, размер файла является

20.9.2 Запрос get и ответ на него

20.9.2 Запрос get и ответ на него На рис. 20.10 показаны запрос get-request и ответ на него (response), полученные в анализаторе Sniffer компании Network General. Запрос содержит список из пяти переменных, значения которых нужно получить. После каждого идентификатора переменной стоит заполнитель NULL.

20.

9.3 Запрос get-next и ответ на него

20.9.3 Запрос get-next и ответ на него Сообщение get-next работает по-другому. Когда отсылается идентификатор объекта, возвращается значение следующего объекта. Например, если послать запрос:SNMP: Object = {1.3.6.1.2.1.5.1.0} (icmpInMsgs.0)SNMP: Value = NULLответ будет содержать имя и значение для следующей

20.9.4 Запрос set

20.9.4 Запрос set Запрос set позволяет записывать информацию в базу данных агента. Формат сообщения очень прост, он выглядит как get-request, но приводит к изменению указанных в запросе переменных. На рис. 20.11 показано отслеживание запроса set.SNMP: Version = 0SNMP: Community = xyzSNMP: Command = Set requestSNMP:

Уточняем запрос в поисковой системе

Уточняем запрос в поисковой системе Скажем, вы решили приобрести мультиварку, о которой много уже наслышаны и о которой давно мечтали.

Если указать в поисковой строке только одно слово мультиварка, то в выдаче окажется 13 миллионов ответов, где будут присутствовать ссылки

Что такое запрос

Что такое запрос Запрос (query) — это команда базы данных, осуществляющая выборку записей. Используя запросы, можно получить данные из одного или нескольких полей, принадлежащих одной или нескольким таблицам. При этом данные можно отбирать в соответствии с определенными

Запрос версии сервера Firebird

Запрос версии сервера Firebird Переключатель -z (без параметров) показывает версию gfix и сервера Firebird, инсталлированного на сервере.Вот синтаксис:gfix

Запрос на удаление записей

Запрос на удаление записей Базы данных не только используются по прямому назначению; часто возникает необходимость произвести в них некоторые вспомогательные, служебные операции.

Например, время от времени базу данных надо чистить: там обнаруживаются дублирующиеся

АВАР/4 Запрос

АВАР/4 Запрос Конечные пользователи могут создавать простые отчеты с помощью АВАР/4 Query. С помощью удобного интерфейса пользователь может указать область или предмет, который его интересует, а также соответствующие таблицы, желаемые поля и оформление списка. Система

Аутентификация «запрос-ответ»

Аутентификация «запрос-ответ» Как показано на рис. 2.2, сервер генерирует случайный запрос и отправляет его пользователю А [208]. Вместо того чтобы в ответ отправить серверу пароль, пользователь А шифрует запрос при помощи ключа, известного только ему самому и серверу.

Неявный запрос на базе времени

Неявный запрос на базе времени Рис. 2.3 иллюстрирует аутентификацию на базе времени [72]. Пользователь А шифрует значение текущего времени на часах своего компьютера и отправляет свое имя и шифртекст на сервер. Сервер расшифровывает значение, присланное пользователем А.

Как сделать перекрестный запрос в access?

Содержание

  • 1 Создание запросов в Microsoft Access
  • 2 Легкий путь для новичков
  • 3 Простой запрос
  • 4 Перекрестный запрос
  • 5 Повторяющиеся записи
  • 6 Записи без подчиненных
  • 7 Функции запросов в MS Access
  • 8 Запрос на выборку
  • 9 Запрос с параметрами
  • 10 Расширенный перекрестный запрос
  • 11 Краткие рекомендации

Перекрестные запросы — это запросы, в которых происходит статистическая обработка данных, результаты которой выводятся в виде таблицы, очень похожей на сводную таблицу Excel. Перекрестные запросы обладают следующими достоинствами:

  • возможностью обработки значительного объема данных и вывода их в формате, который очень хорошо подходит для автоматического создания графиков и диаграмм;
  • простотой и скоростью разработки сложных запросов с несколькими уровнями детализации.

Однако они имеют и недостатки — например, нельзя сортировать таблицу результатов по значениям, содержащимся в столбцах, т. к. в подавляющем большинстве случаев одновременное упорядочивание данных в столбцах по всем строкам невозможно. При этом вы можете задать сортировку по возрастанию или по убыванию для заголовков строк.

Перекрестные запросы удобны для представления данных в виде таблицы, но т. к такая таблица часто имеет разное количество столбцов, на них довольно сложно строить отчеты. Создание отчета на базе перекрестного запроса будет рассматриваться в гл. 13.

В качестве примера сформируем два перекрестных запроса к базе данных «Борей» для вывода ежемесячных продаж товара (по его коду) и ежеквартальных продаж товара (по его типу). Подобные таблицы, содержащие итоги, которые подводятся через определенные промежутки времени, например через каждый месяц или квартал, обычно используются в качестве данных для графиков.

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

Итак, мы будем создавать перекрестный запрос, в котором в строках выводятся товары, а в столбцах — соответствующие им ежемесячные объемы продаж. Для этого:

  1. Создайте новый запрос в режиме Конструктора и добавьте в него таблицы «Товары» (Products), «Заказы» (Orders) и «Заказано» (Order Details).
  2. Перетащите поля «КодТовара» (ProductlD) и «Марка» (ProductName) таблицы «Товары», а затем поле «ДатаРазмещения» (OrderedDate) таблицы «Заказы» в первые три столбца бланка запроса.
  3. Выберите команду меню Запрос, Перекрестный (Query, Crosstab Query). Заголовок окна запроса Запрос1:на выборку (Query1:Select Query) изменится на Запрос!перекрестный запрос (Queryl:Crosstab Query). Кроме того, в бланк запроса будут добавлены строки Перекрестная таблица (Crosstab) и Групповая операция (Total), в которую во всех столбцах автоматически вводится операция Группировка (Group By).
  4. Выберите в списке ячейки Перекрестная таблица столбца «КодТовара» значение Заголовки строк (Row Heading). Выполните то же самое для столбца «Марка». Эти столбцы являются требуемыми заголовками строк перекрестной таблицы.
  5. Выберите в списке ячейки Групповая операция столбца «ДатаРазмещения» значение Условие (Where). В ячейке Условие отбора (Criteria) этого столбца введите выражение =#01.01.97# для вывода в перекрестной таблице данных за 1997 год.
  6. Установите курсор в ячейку Поле (Field) следующего (пустого) столбца и введите выражение:

    Объем продаж: Sum(*.)

    Это будет поле, значение которого вычисляется с помощью описанного выражения, а название поля — «Объем продаж». В выражении используются поля из таблиц, которые включены в запрос, однако обратите внимание, что сами поля в результат запроса не включены. Это означает, что при создании вычисляемого поля в выражение можно включать ссылки не только на поля самого запроса, но и на поля, которые не включаются в результат запроса. Важно, чтобы они были в исходных таблицах. При ссылке на поле «Цена» в выражении мы указали еще имя таблицы «Заказано», а при ссылке на поле «Количество» не указывали. Указать имя таблицы пришлось потому, что поле с именем «Цена» присутствует и в таблице «Товары» и в таблице «Заказано». Если не указать в выражении имени таблицы, Access не сможет определить, из какой таблицы брать значения, поэтому при выполнении запроса выдаст сообщение об ошибке, как это представлено на рис. 8.13.

Рис. 8.13. Сообщение об ошибке в выражении вычисляемого поля

Выберите в ячейке Групповая операция (Total) того же столбца значение Выражение (Expression), а затем в ячейке Перекрестная таблица — значение Значение (Value). В столбце «Объем продаж» вычисляется общий объем заказов на каждый товар, который будет подставляться в ячейки результирующей таблицы запроса.

  1. Установите курсор в ячейку Поле (Field) следующего (пустого) столбца и введите выражение Format(;»mmm»). Функция Format О в данном случае будет возвращать три первые буквы месяца от значения даты в столбце «ДатаРазмещения». С помощью этой функции мы создали еще одно вычисляемое поле в запросе, причем после окончания ввода этого выражения Access автоматически создает имя этого поля «Выражение!» (Exprl). Так происходит всякий раз, когда мы не определяем имя вычисляемого поля. Выберите из списка в ячейке Перекрестная таблица этого столбца значение Заголовки столбцов (Column Heading) (рис. 8.14). Это означает, что данный столбец запроса будет преобразован в процессе выполнения запроса в строку, содержащую заголовки столбцов результирующей таблицы.

Рис. 8.14. Перекрестный запрос в режиме Конструктора

  1. Нажмите кнопку Запуск (Run). Появится результирующее множество записей, представленное на рис. 8.15.

Рис. 8.15. Результирующее множество перекрестного запроса

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

Приложение СУБД MS Access – это полноценный помощник для создания и ведения баз данных, заключенных в таблицы и массивы. Если база имеет слишком большой объем, быстро найти необходимые значения довольно сложно.

Именно поэтому в Access существует такая функция, как запросы. Рассмотрим, что это такое, как работает, какие имеет особенности.

Создание запросов в Microsoft Access

Чтобы разобраться, как создавать запросы в Access, нужно знать основные положения работы с СУБД.

Существует два способа выполнить данную процедуру:

  • Конструктор запросов.
  • Мастер запросов.

Первый способ дает возможность создать любой из всех доступных запросов в ручном режиме, но с небольшой оговоркой, заключающейся в том, что пользователь имеет опыт работы с приложением Access. Также он должен разбираться хотя бы в основных его задачах. Что касается второго способа, то его нужно рассмотреть более подробно.

Легкий путь для новичков

Знающий человек за несколько кликов мышью выбирает те компоненты, которые потребуются пользователю для выполнения запроса, а затем быстро формирует реестр, в соответствии с собранными ключевыми значениями. Если это первое знакомство с СУБД, и пользователь не представляет, как создавать запросы в Access, то выбирается программа Мастер.

В данном режиме можно ознакомиться и разобраться со следующими типами запросов:

  • Простой.
  • Перекрестный.
  • Записи без подчиненных.
  • Повторяющиеся записи.

Данный выбор осуществляется уже на первом этапе работы с Мастером. А в дальнейшем, следуя четким указаниям, даже начинающий пользователь легко создаст запрос. Познакомимся с его разновидностями.

Простой запрос

Этот инструмент работы с таблицами собирает нужные данные из указанных пользователем полей. Уже по названию видно, что это самый популярный тип запросов для новичков. Его удобство заключается в том, что такая процедура открывается в новой вкладке. Поэтому ответ на вопрос, как создать запрос в Access 2010, становится очевидным уже после открытия первого меню Мастера.

Перекрестный запрос

Этот тип выборки более сложный. Чтобы разобраться, как создать перекрестный запрос в Access с помощью «Мастера» в данном режиме, нужно кликнуть по этой функции в первом окне.

На экране появится таблица, в которой можно выбрать до трех столбцов, расположенных в оригинале.

Одно из оставшихся не выбранных полей может быть использовано в качестве заголовков таблицы запроса. На третьем этапе процедуры (пересечение) выбирается еще одно значение с вариативностью функцию (среднее значение, сумма, первый, последний).

На фото показано, что перекрестный запрос создан, и что по заданным параметрам совершены необходимые действия.

Повторяющиеся записи

Как понятно из названия, основное предназначение данного запроса – выборка всех одинаковых строк в таблице по указанным параметрам. Выглядит это так:

Кроме того, доступен выбор дополнительных полей, чтобы подобрать соответствие сразу в нескольких строках.

Чтобы выбрать повторяющиеся записи, нужно раскрыть список запросов и создать там новую папку. Далее в окошке «Новый запрос» выбрать строку «Поиск повторяющихся записей». Далее нужно следовать указаниям Мастера.

Записи без подчиненных

Это последний тип запросов, доступный в режиме «Мастер – Записи без подчиненных».

В этом случае ведется выборка только тех значений, которые не задействованы ни в одном поле таблиц и запросов, но которые уже созданы.

Данный тип актуален только в случаях, когда баз данных несколько.

Все эти четыре типа запросов являются базовой точкой для работы со сложными элементами, но позволяют легко разобраться, как создать запрос в базе данных Access.

Функции запросов в MS Access

Разберемся, зачем нужно выполнять описанные выше действия. Задача всех простых и сложных запросов в СУБД Access заключается в следующем:

  • Сбор необходимых данных в таблицах, их последующих просмотр, редактирование, добавление новых значений.
  • Прекрасный исходный материал для подготовки всевозможных форм отчетности.
  • Проведение математических и статистических счетных процедур над целыми массивами данных с выводом итогов на экран (среднее значение, сумма, отклонение, итоги).

Запрос на выборку

Этот тип работы с базами данных является сложным, так как требует участия нескольких таблиц.

Необходимо, чтобы во всех таблицах были общие ключевые поля. В противном случае совершить операцию не получится.

Повторим, как создать запрос на выборку в Access. Сначала нужно создать простой запрос с выбором нужных полей. Уже здесь можно редактировать данные, чтобы привести их в желаемый вид. К слову, внесенные изменения перенесутся и в исходные таблицы, так что этот момент нужно учитывать.

В открывшемся окне конструктора заполняется окно «Добавление таблиц». Здесь нужно добавить те таблицы или запросы, из которых нужно вытаскивать исходные значения.

После добавления можно приступить к заполнению условий запроса. Для этого нам нужна строка «Поле». В ней нужно подобрать те значения из таблиц, которые будут отображаться при запросе.

Чтобы завершить операцию, нужно нажать на кнопку «Выполнить».

Запрос с параметрами

Это еще одна разновидность сложной процедуры, которая потребует от пользователя определенных навыков работы с базами данных. Одним из главных направлений такого действия является подготовка к созданию отчетов с объемными данными, а также получение сводных результатов. Как создавать запросы в Access 2007 с помощью конструктора, будет рассмотрено ниже.

Начинать данную процедуру по выборке данных нужно с создания простого запроса, чтобы выбрать нужные поля. Далее через режим Конструктора обязательно нужно заполнить поле «Условие отбора» и, уже исходя из внесенного значения, будет осуществляться отбор.

Таким образом, на вопрос о том, как создать запрос с параметром в Access, ответ простой — внести исходные параметры для выборки. Чтобы работать с Конструктором необходимо пользоваться Мастером запросов. Там создается первичные данные для фильтрации, которые служат основой дальнейшей работы.

Расширенный перекрестный запрос

Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме «Конструктора» можно создавать подобный запрос.

Для этого необходимо нажать «Конструктор запросов» — «Перекрестный».

Открывается меню добавления исходных таблиц, а также возможность заполнения выборочных полей. Единственное, на что следует обратить внимание, – пункты «групповая операция» и «перекрестная таблица». Их нужно заполнять правильно, иначе процедура не будет выполнена корректно.

Перекрестные запросы – это наиболее простой способ поиска и выборки информации из нескольких источников данных, плюс с возможностью формирования диаграмм и графиков.

Более того, при использовании данной процедуры быстрее выполняется поиск, даже с несколькими вариантами развития.

Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».

Краткие рекомендации

Подводя итоги, нужно сказать, что решить, как создавать запросы в Access – с помощью Мастера или Конструктора, должен сам пользователь. Хотя, для большинства людей, которые используют СУБД MS Access, больше подойдет первый вариант. Ведь Мастер сам сделает всю работу, оставив для пользователя только несколько кликов мышью, при выборе условий запроса.

Чтобы использовать расширенные настройки, явно необходим опыт работы с базами данных на уровне профессионала. Если в работе задействованы большие базы, лучше всего обратиться к специалистам, дабы избежать нарушения работы СУБД и возможных потерь данных.

Есть один момент, который доступен лишь программистам. Так как основным языком СУБД является SQL, то нужный запрос можно написать в виде программного кода. Чтобы работать в данном режиме, достаточно нажать на строку уже созданного запроса, и в открывшемся контекстном меню выбрать «Режим SQL».

Перекрестный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчеты, после чего результаты группируются в виде таблицы по двум наборам данных, один из которых определяет заголовки столбцов, а другой заголовки строк.

Пример

Мы будем создавать перекрестный запрос, в котором в строках выводятся должности работников , а в столбцах — пол работника. А в пересечении столбцов и строк — средний стаж для каждого работника. Для этого:

Откройте закладку

Creatе

(Создать) и щелкните по кнопке

(Мастер запросов).

Появляется окно New Query (Новый запрос), в котором выбираем Crosstab Query Wizard (Создание перекрестного запроса). Нажать кнопку ОК.

  • В появившемся окне Crosstab Query Wizard (Создание перекрестного запроса) нужно выбрать таблицу (Töötaja), которая будет служить источником данных для создаваемого запроса.

  • Нажать кнопку Next (Далее).
  • В следующем окне нужно выбрать значения какого поля будут использоваться в заголовках строк. Мы выбираем поле Ameti_kood (код должности) и с помощью стрелки переносим в список Selected Fields.

  • Нажать кнопку Next (Далее).
  • Затем укажите поля, которые станут заголовками столбцов. В данном случае выбираем поле Sugu

  • Нажать кнопку Next (Далее).
  • В следующем окне Мастера предстоит ответить еще на один вопрос: What number do you want calculated for each column and row intersection? (Что вы хотите вычислить для каждой ячейки, расположенной на пересечении строки и столбца?)
  • В нашем случае, мы выбираем поле Staaz (Cтаж) и будем высчитывать средний (Avg) стаж для каждого работника каждой специальности. Т.е .Avg(Staaz)

  • Нажать кнопку Next (Далее).
  • Следующее диалоговое окно будет последним. В нем нужно ввести имя создаваемого запроса в поле What do you want to name your query? (Задайте имя запроса) и выбрать дальнейшие действия:
    View the query (Открыть запрос для просмотра данных) или
    Modify the design (Изменить макет запроса).

  • Нажать кнопку Finish (Готово).
  • Для просмотра откроется запрос, в котором можно увидеть средний стаж работы по каждой специальности, в том числе отдельно для мужчин и женщин.

จัดเรียงตาม

Как быстро создать ПЕРЕКРЕСТНЫЙ запрос в базе данных Microsoft AccessУроки по Microsoft Access

11 หลายเดือนก่อน

Если вы не знаете как создать перекрестный запрос в программе Microsoft Access, то посмотрите это видео. Продолжаем…

Урок в Microsoft Access ( Перекрестные запросы )Александр Власов

5 ปีที่แล้ว

Видео о создании перекрестного запроса в Access 2007 года.

9.3. Перекрестные запросы Microsoft Access 2010.Dmitrii Dmitrii

ปีที่แล้ว

Раздел 9. Анализ данных с помощью запросов. Запросы к базам данных Microsoft Access 2010.

перекрестные запросы Accessх

5 ปีที่แล้ว

Урок 8. Access Запросы Часть6 Групповые операции Перекрестный запросMoodle Donguu

3 ปีที่แล้ว

Как создать запросы в Microsoft Access за 10 минутУроки по Microsoft Access

3 ปีที่แล้ว

Узнайте, как легко и быстро создать базу данных Access — accesshelp.ru/category/uroki/ Если вы не знаете как создать…

Урок в Microsoft Access ( Перекрестные запросы .Marat Asanov

5 ปีที่แล้ว

Урок в Microsoft Access ( Перекрестные запросы .

Как определить ГОД, КВАРТАЛ, МЕСЯЦ, ДЕНЬ НЕДЕЛИ в запросе AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете, как создаются запросы с условием в базе данных Microsoft Access, то посмотрите это видео. Продолж…

Microsoft Access № 29: запрос Access на удаление записейАндрей Домостой

3 ปีที่แล้ว

Как создать запрос Access на удаление записей из таблиц Access? КУПИТЬ ВИДЕОКУРСЫ ИЛИ ЗАКАЗАТЬ БАЗУ: goo.gl/zgcfyg…

Microsoft Access № 54: запросы в Access (статистика на форме)Андрей Домостой

4 ปีที่แล้ว

При помощи запроса Access на объединение легко можно вывести на форму статистику по базе данных Access. КУПИТЬ…

SQL: создаем вложенные подзапросы в запросах AccessУроки по Microsoft Access

ปีที่แล้ว

После просмотра данного видеоурока вы научитесь создавать встроенные подзапросы на языке SQL. В базе данных…

Access с нуля Урок №9 ЗапросыАмиржан Джумабеков

4 ปีที่แล้ว

перекрёстные запросыГалина Анатольевна Иванова

4 ปีที่แล้ว

Как сделать запросы в базе данных Microsoft Access 2016Уроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать базу данных в программе Microsoft Access 2016, то посмотрите это видео. Всего за 6 уроков…

52 Перекрестные запросыTeachProTube

5 ปีที่แล้ว

Смотрите полную версию курса Microsoft Access 2010 здесь: teachpro.ru/Course/Access2010?utm_source=youtube&utm_campaign=Access2010 …

Как создать запрос с параметром в Microsoft Access за 7 минутУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете, как создать запрос с параметром в базе данных Microsoft Access, то посмотрите это видео. Продолжа…

SQL: создаем запросы на выборку (SELECT) в Microsoft AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать SQL-запросы в базе данных Microsoft Access, то посмотрите это видео. На примере стандарт…

9.1. Итоговые запросы Microsoft Access 2010.Dmitrii Dmitrii

ปีที่แล้ว

Раздел 9. Анализ данных с помощью запросов. Запросы к базам данных Microsoft Access 2010.

Как создать запрос в БД AccessGOGA TV

2 ปีที่แล้ว

Создаем запрос на выборку в Microsoft Access.

Access для начинающих. Урок 4: Создание запросаДмитрий Кивганов

3 ปีที่แล้ว

В уроке разбирается как создать запрос при помощи конструктора запросов. Данные могут запрашиваться из…

Перекрестные запросы БДНиколай Чернавских

4 ปีที่แล้ว

Реализация перекрестных запросов на Delphi.

Как создать ЗАПРОС С УСЛОВИЕМ в базе данных MS ACCESSУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете, как создаются запросы с условием в базе данных Microsoft Access, то посмотрите это видео. Продолж…

15. Глава 17 — Создание перекрестного запроса в Microsoft Access 2016Издательство Диалектика

2 ปีที่แล้ว

Видеоролик к книге «Office 2016 для чайников» www.dialektika.com/books/978-5-8459-2076-8.html Купить в Украине: …

Как создать запрос с помощью мастера запросов в базе AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать запрос с помощью мастера запросов в базе данных Microsoft Access, то посмотрите это…

Microsoft Access № 53: запрос Access на номера посещений пациентов поликлиникиАндрей Домостой

4 ปีที่แล้ว

При помощи запроса Access отображаются номера посещений поликлиники пациентами (согласно дате посещения)….

2 Создание таблиц и запросов в AccessData Digger

4 ปีที่แล้ว

В новом видео вы узнаете, как создавать таблицы и связывать записи разных таблицы. Также вы узнаете как…

Как создать ЗАПРОСЫ НА ДОБАВЛЕНИЕ в Microsoft Access за 8 минутУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать запрос на добавление в программе Microsoft Access, то посмотрите это видео. Продолжае…

Готовая база данных Access Успеваемость студентов (3 из 4)Уроки по Microsoft Access

11 หลายเดือนก่อน

Если вы не знаете что такое готовая база данных Access, то посмотрите это видео. ВСЕГО ЗА 4 УРОКА мы создадим…

Как создать ЗАПРОСЫ НА УДАЛЕНИЕ в Microsoft Access за 4 минутыУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать запрос на удаление в программе Microsoft Access, то посмотрите это видео. Продолжаем…

SQL: создаем запрос на удаление (DELETE) в Microsoft AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать SQL-запросы в базе данных Microsoft Access, то посмотрите это видео. На примере стандарт…

Как создать ЗАПРОСЫ НА ОБНОВЛЕНИЕ в Microsoft Access за 5 минутУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать запрос на обновление в программе Microsoft Access, то посмотрите это видео. Продолжае…

Запрос на поиск записи без подчиненных в базе данных Microsoft AccessУроки по Microsoft Access

ปีที่แล้ว

Узнайте, как найти записи без подчиненных в Access с помощью запроса. Продолжаем работать с базой данных Access…

Создание запроса на создание таблицы в базе AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете, как создать запрос на создание таблицы в базе данных Microsoft Access, то посмотрите это видео….

Как задать условия для ТЕКСТОВЫХ полей в запросах MS ACCESSУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете, как создаются запросы в базе данных Microsoft Access, то посмотрите это видео. Продолжаем работат…

Поиск повторяющихся записей в запросах AccessУроки по Microsoft Access

ปีที่แล้ว

Узнайте, как найти повторяющиеся данные в Access с помощью запроса. Продолжаем работать с базой данных Access…

Создание сложных запросовЕлена Галдина

3 ปีที่แล้ว

1 Изменение данных в Access 2013 с помощью запросов на обновлениеТвойКомп

3 ปีที่แล้ว

Как связать таблицы в базе данных Microsoft Access 2016Уроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать базу данных в программе Microsoft Access 2016, то посмотрите это видео. Всего за 6 уроков…

Многотабличные запросыАлексей Муратов

ปีที่แล้ว

Выполнил Муратов А.А.

Урок 6. Access. Запросы. Часть1Moodle Donguu

3 ปีที่แล้ว

Access с нуля Урок №9- ЗапросыKak V

5 ปีที่แล้ว

Access — Запросы.

Как создать ВЫЧИСЛЯЕМЫЕ запросы в базе AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете, как создаются запросы с вычислениями в базе данных Microsoft Access, то посмотрите это видео….

MS Access Запросы «Создание запросов» part 1Санубар Мамедова

4 ปีที่แล้ว

Урок в 10-м классе MS Access Запросы «Создание запросов»

Создание простых запросовЕлена Галдина

3 ปีที่แล้ว

SQL: Сортировка данных в запросе (ORDER BY) в Microsoft AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать SQL-запросы в базе данных Microsoft Access, то посмотрите это видео. На примере стандарт…

Урок 7 Access.Запросы Часть 5 Вычисления и функцииMoodle Donguu

3 ปีที่แล้ว

SQL: Агрегатные функции SUM, AVG, COUNT, MIN, MAX в запросах AccessУроки по Microsoft Access

ปีที่แล้ว

Если вы не знаете как создать SQL-запросы в базе данных Microsoft Access, то посмотрите это видео. На примере стандарт…

MS Access Запросы «Создание запросов» part 3Санубар Мамедова

4 ปีที่แล้ว

Урок в 10-м классе MS Access Запросы «Создание запросов»

Запрос на удаление MS AccessDemaskinas

4 ปีที่แล้ว

Кросс-таблица SQL | Полное руководство по кросс-таблице SQL в деталях

Кросс-таблица — это ситуация, когда нам требуется, чтобы результаты таблицы или запроса были повернуты таким образом, чтобы данные, присутствующие в столбцах, отображались горизонтально и данные, которые присутствуют в строках таблицы, должны быть представлены в вертикальном формате. Этот поворот представления данных называется кросс-таблицей или сводной таблицей. Существует множество способов, с помощью которых мы можем отображать данные в формате кросс-таблицы в SQL. В этой статье мы увидим, как мы можем транспонировать данные, которые вращают данные, для отображения в формате кросс-таблицы с помощью простого оператора case, а затем с помощью оператора поворота в SQL с помощью некоторых примеров.

Формат перекрестной таблицы

Чтобы увидеть формат, давайте рассмотрим один простой пример, где у нас есть существующие таблицы с именем sales_details в базе данных с именем educba, в которой хранится ежемесячная сумма продаж каждого месяца, начиная с 2006 года, и есть столбцы, поддерживаемые в таблица, которая включает год, месяц и продажи этого месяца.

Содержимое таблиц показано в выходных данных приведенного ниже оператора запроса.

Код:

 SELECT * FROM sales_details; 

Выполнение приведенного выше оператора запроса дает результат, который показан ниже, где у нас есть данные до 7-го месяца 2008 года, а таблица содержит в общей сложности 31 запись.

Вывод:

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

Теперь мы увидим, как мы можем отображать данные в формате кросс-таблицы, как показано выше, обоими способами, которые включают использование оператора case и, во-вторых, использование оператора поворота.

Давайте сначала подсчитаем сумму за каждый год и отобразим все значения года, присутствующие в таблице. Для этого мы воспользуемся простым запросом, который сгруппирует результат по году и упорядочит набор результатов по значению столбца года, а также воспользуется функцией агрегирования суммы для расчета общего объема продаж за каждый год.

Код:

 ВЫБЕРИТЕ ГОД,
SUM(saleAmount) КАК Итого
ОТ sales_details
ГРУППА ПО ГОДАМ
СКАЧАТЬ ПО ГОДАМ; 

Выходные данные:

Стандартная перекрестная таблица ANSI-SQL

Стандартный SQL поддерживает использование операторов case, которые можно использовать для преобразования значений строк в значения столбцов и наоборот. Теперь давайте попробуем реализовать функциональность перекрестной таблицы для получения набора результатов, как показано на рисунке выше.

Наш оператор запроса будет выглядеть следующим образом, в нем будет оператор CASE.

Код:

 SELECT * FROM sales_details;
ВЫБИРАТЬ
ГОД,
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 1
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц2",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 2
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц3",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 3
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц4",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 4
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц5",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 5
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц5",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 6
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц6",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 7
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц7",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 8
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц8",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 9ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц9",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 10
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц20",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 11
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц21",
СУММ(
СЛУЧАЙ
КОГДА МЕСЯЦ = 12
ТОГДА сумма продажи
ИНАЧЕ 0
КОНЕЦ
) АС "Месяц22",
SUM(saleAmount) КАК Итого
ОТ
sales_details
ГРУППА ПО ГОДАМ; 

Выход:

Microsoft SQL Server 2005 Pivot

В Microsoft SQL Server 2005 введена поддержка оператора Pivot, чтобы получить функциональность кросс-таблицы и реализовать ее.

Рассмотрим тот же пример выше; мы будем использовать оператор сводки, который поможет нам сохранить значения во временных переменных. Здесь мы использовали 1,2,3 и т. д., а для замены значений NULL на 0 мы использовали функцию COALESCE.

Код:

 ВЫБЕРИТЕ
ГОД,
ОБЪЕДИНЕНИЕ([ 1,0) ] КАК [январь],
СЛИЯЮТСЯ([ 2,0) ] КАК [февраль],
СЛИЯЮТСЯ([3,0)] КАК [март],
СЛИЯЮТСЯ ([ 4,0) ] КАК [ апрель ],
СЛИЯЮТСЯ([ 5,0) ] КАК [ май ],
СЛИЯЮТСЯ ([ 6,0) ] КАК [ июнь ],
СЛИЯЮТСЯ ([ 7,0) ] КАК [ июль ],
СЛИЯЮТСЯ([ 8,0) ] КАК [август],
ОБЪЕДИНЕНИЕ([ 9,0) ] КАК [ сентябрь ],
СЛИЯЮТСЯ([ 10,0) ] КАК [октябрь],
СЛИЯЮТСЯ([ 11,0) ] КАК [ ноябрь ],
СЛИЯЮТСЯ([ 12,0) ] КАК [ декабрь ],
[ 1 ] + [ 2 ] + [ 3 ] + [ 4 ] + [ 5 ] + [ 6 ] + [ 7 ] + [ 8 ] + [ 9 ] + [ 10 ] + [ 11 ] + [ 12 ] Итого
ОТ
(ВЫБИРАТЬ
ГОД,
МЕСЯЦ,
продажаСумма
ОТ
sales_details) AS src PIVOT (
СУММА(saleAmount) ЗА МЕСЯЦ В ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11] ],[12])) AS pvt
СКАЧАТЬ ПО ГОДАМ; 

Выход:

Заключение

Мы можем изменить формат отображения значений столбца и строки в таблице, которая преобразует данные таблицы, используя формат перекрестной таблицы в SQL. Есть в основном два способа сделать это; стандартный SQL поддерживает использование операторов case, которые можно использовать для преобразования значений строк в значения столбцов и наоборот. Кроме того, Microsoft SQL Server 2005 представил поддержку операторов сводки, чтобы получить функциональность кросс-таблицы и реализовать ее.

Рекомендуемые статьи

Мы надеемся, что эта информация EDUCBA о «SQL Crosstab» была вам полезна. Вы можете просмотреть рекомендуемые статьи EDUCBA для получения дополнительной информации.

  1. Выбор SQL Top
  2. Кластер SQL
  3. ТРИГГЕР СБРОСА SQL
  4. Виртуальная таблица SQL

Использование SQL Server для создания перекрестного запроса

В этой головоломке мы узнаем, как создать перекрестный запрос с помощью SQL Server. Кросс-таблицы — отличный способ суммировать данные. А учитывая, что бизнес-аналитика — горячая тема, ключевое значение имеет знание того, как ее создать.

Мы научимся создавать перекрестный запрос. Прежде чем прочитать всю статью, попробуйте решить головоломку. Любая работа, которую вы делаете, если вы просто получаете часть ответа, помогает закрепить концепции, которые вы изучаете.

Решение головоломок — отличный способ выучить SQL. Ничто не сравнится с практикой того, что вы узнали. Как только вы разгадаете головоломку, опубликуйте свой ответ в комментариях, чтобы мы все могли учиться друг у друга. Мы также обсуждаем головоломки и многое другое в Essential SQL Learning Group на Facebook. Обязательно найдите нас там!

Вопрос-головоломка SQL

Директор по персоналу Adventure Works начинает исследование заработной платы. В рамках этого исследования она хотела бы получить сводку годовой заработной платы по названию группы отдела и жизненному статусу.

Для наших целей жизненный статус определяется сочетанием семейного положения и пола (например, Женат-мужчина, Замужем-женщина).

Используя базу данных AdventureWorks в качестве основы для вашего ответа, какой SQL вы бы написали для продукта следующей таблицы?

Примечание. Это отличный ресурс, если вам нужна помощь в начале работы с SQL Server и базой данных Adventure Works.

Ответ с использованием перекрестного запроса

Прежде чем мы приступим к созданию перекрестного запроса, давайте сначала определим базовый запрос, который мы будем использовать в качестве источника.

Изучив базу данных Adventure Works, вы заметите, что есть несколько ключевых таблиц, которые вам понадобятся для поиска. Чтобы помочь понять отношения базы данных, давайте создадим диаграмму базы данных.

Эти диаграммы действительно помогают понять отношения и пригодятся при написании запросов.

Ниже показано, что нужно использовать для этой головоломки. Обратите внимание, что таблица Employee занимает центральное место в запросе. С этим связаны два отдельных измерения: первое — это история оплаты, второе — история отдела сотрудников.

Строки сведений о запросе кросс-таблицы

Первым шагом в составлении сводки является создание запроса, используемого для извлечения подробных данных. Изучив диаграмму, вы увидите, что нам потребуется несколько объединений для показанных отношений.

Чтобы упростить чтение, я выделил внутренние соединения SQL, связанные с историей платежей, красным цветом, а соединения с названием группы отделов — синим.

 ВЫБЕРИТЕ E.BusinessEntityID,
       D.ИмяГруппы,
       H.Дата окончания,
       E. семейное положение,
       Э.Гендер,
       P.Rate,
       P.PayЧастота,
       P.RateChangeDate,
       P.Rate * 40 * 52 / P.PayFrequency как AnnualPay
ОТ   HumanResources.Employee E
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ HumanResources.EmployeePayHistory P ON
                  E.BusinessEntityID = p.BusinessEntityID
       INNER JOIN HumanResources.EmployeeDepartmentHistory H ON
                  E.BusinessEntityID = H.BusinessEntityID
       INNER JOIN HumanResources.Department D ON
                  H.DepartmentID = D.DepartmentID
ГДЕ E.CurrentFlag = 1; 

Есть несколько проблем с этим результатом. Во-первых, запрос возвращает более одной строки для каждого сотрудника. Чтобы избежать двойного подсчета сводных результатов, должна быть одна строка.

Это связано с тем, что запрос возвращает полную информацию о заработной плате и истории отдела каждого сотрудника. В результат включаются несколько записей для одного сотрудника — по одной для каждого повышения заработной платы или перемещения отдела.

Удаление дубликатов из результатов запроса кросс-таблицы

Результаты должны содержать последнюю зарплату и отдел для каждого сотрудника.

Последний отдел, когда-то соответствующий истории отдела с датой окончания NULL. Добавление фильтра к условию соединения решает эту проблему.

Чтобы выбрать только последнюю ставку оплаты, мы разделим данные по сотрудникам (BusinessEntityID), отсортированные по RateChangeDate. С данными, отсортированными в порядке убывания, последняя выплата всегда ROW_NUMBER() = 1.

Обертывание этого запроса в CTE (Common Table Expression) позволяет запрашивать подробные данные и фильтровать секционированные данные. Это означает, что мы можем выбрать строки, где ROW_NUMBER() = 1,

 С cte_EmployeePay как
(
   ВЫБЕРИТЕ E.BusinessEntityID,
          D.ИмяГруппы,
          H.Дата окончания,
          E. семейное положение,
          Э.Гендер,
          P.Rate,
          P.PayЧастота,
          P.RateChangeDate,
          P.Rate * 40 * 52 / P.PayFrequency как AnnualPay,
          ROW_NUMBER() OVER(РАЗДЕЛ ПО E.BusinessEntityID
                       ORDER BY P.RateChangeDate Desc) RowNumber
   ОТ   HumanResources.Employee E
          ВНУТРЕННЕЕ СОЕДИНЕНИЕ HumanResources.EmployeePayHistory P ON
                     E.BusinessEntityID = p.BusinessEntityID
          INNER JOIN HumanResources.EmployeeDepartmentHistory H ON
                     E.BusinessEntityID = H.BusinessEntityID
                     И H.EndDate имеет значение NULL
          INNER JOIN HumanResources.Department D ON
                     H.DepartmentID = D.DepartmentID
   ГДЕ E.CurrentFlag = 1
)
ВЫБИРАТЬ *
ОТ   cte_EmployeePay
ГДЕ RowNumber = 1; 

Использование общего табличного выражения упрощает управление и избавляет от необходимости создавать представление секционированных данных. Теперь наши результаты показывают последние выплаты и ведомственные назначения.

Обратите внимание, что для BusinessEntityID 4 имеется только одна строка.

Последним шагом является создание кросс-табличного запроса. Я решил создать его с помощью оператора PIVOT.

Чтобы подготовить свои данные, я вычислил LifeStatus, объединив MaritalStatus и Gender.

Далее в операторе разворота я явно вызываю каждую комбинацию. Это делает его статической сводной таблицей. В более поздней головоломке мы узнаем, как построить динамическую ось.

Использование PIVOT для создания перекрестного запроса

Теперь мы можем собрать сводные данные с помощью PIVOT. Чтобы помочь вам прочитать запрос, я выделил исходный запрос серым цветом.

PIVOT имеет синий цвет.

 С cte_EmployeePay как
(
 ВЫБЕРИТЕ D.GroupName,
 IIF(E.MaritalStatus = 'M','Женат','Холост') + '-' +
 IIF(E.Gender = 'M', 'Мужской', 'Женский') как LifeStatus,
 P.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *