Пользовательский интерфейс конструктора реляционных запросов (построитель отчетов 3.0)

Построитель отчетов 3.0 предоставляет как графический, так и текстовый конструктор запросов, которые помогают создавать запросы, указывающие, какие данные следует получить из реляционных баз данных Microsoft SQL Server, Microsoft SQL Azure и Microsoft Параллельное хранилище данных SQL Server 2008 R2 для набора данных отчета. Графический конструктор запросов используется для просмотра метаданных, интерактивного создания запроса, а также для просмотра его результатов. Текстовый конструктор запросов используется для просмотра запроса, созданного графическим конструктором запросов, или для его изменения. Также можно импортировать существующий запрос из файла или отчета.

ПримечаниеПримечание

Чтобы создать запрос к типам источников данных Oracle, OLE DB, ODBC и Teradata в построителе отчетов 3.0, необходимо использовать текстовый конструктор запросов. Дополнительные сведения см. в разделе Пользовательский интерфейс текстового конструктора запросов (построитель отчетов 3.0).

Примечание по безопасностиПримечание по безопасности

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

Графический конструктор запросов

Графический конструктор запросов позволяет просматривать таблицы и представления баз данных, выполнять интерактивное построение инструкции SQL SELECT, в которой указываются таблицы и столбцы базы данных, из которых нужно получить данные для набора данных. Следует выбрать поля, включаемые в набор данных, и при необходимости указать фильтры, ограничивающие данные в наборе данных. Можно указать, что фильтры используются в качестве параметров, и указывать значение фильтра во время выполнения. Если выбрать несколько связанных таблиц, конструктор запросов описывает связи между наборами двух таблиц.

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

ПримечаниеПримечание

База данных Параллельное хранилище данных SQL Server 2008 R2 не поддерживает хранимые процедуры и возвращающие табличные значения функции.

На следующем рисунке показан графический конструктор запросов при использовании таблиц и представлений.

Графический конструктор запросов

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

Хранимая процедура в графическом конструкторе запросов

В следующей таблице описываются функции каждой панели.

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

  • Выбранные поля
    Отображается список имен полей базы данных из выбранных элементов на панели «Представление базы данных». Эти поля становятся коллекцией полей для набора данных отчета.

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

  • Связи
    Отображает список связей, которые выводятся из выбранных полей для таблиц или представлений на панели «Представление базы данных», или связей, созданных вручную.

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

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

Панель «Представление базы данных»

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

Панель «Выбранные поля»

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

Отображаются следующие параметры.

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

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

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

  • **Удалить поле. **Удаляет выбранное поле.

Группировка и агрегатная обработка

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

Агрегаты предоставляют сводки данных, а сами данные группируются, чтобы поддерживать агрегаты, предоставляющие сводные данные. При использовании агрегата в запросе другие поля, возвращаемые запросом, автоматически группируются и запрос включает предложение SQL GROUP BY. Можно создавать сводку данных без добавления агрегата, используя только параметр Группировка по в списке Группировка и статистическая обработка. Многие агрегаты содержат версию, использующую ключевое слово DISTINCT. Включение DISTINCT позволяет избежать повторяющихся значений.

Microsoft SQL Server использует Transact-SQL, а Microsoft Параллельное хранилище данных SQL Server 2008 R2 использует SQL. Оба диалекта языка SQL поддерживают предложение, ключевое слово и агрегаты, предоставляемые конструктором запросов.

Дополнительные сведения о Transact-SQL см. в разделе Transact-SQL Reference (Database Engine) электронной документации по SQL Serverна сайте msdn.microsoft.com.

Следующая таблица содержит список агрегатов и предоставляет краткое описание каждого из них.

Агрегат

Описание

Avg

Возвращает среднее арифметическое значений в группе. Реализует агрегат SQL AVG.

Count

Возвращает количество элементов в группе. Реализует статистическое выражение SQL COUNT.

Count Big

Возвращает количество элементов в группе. Это агрегат SQL COUNT_BIG. Разница между COUNT и COUNT_BIG заключается в том, что COUNT_BIG всегда возвращает значение типа данных bigint.

Min

Возвращает минимальное значение в группе. Реализует статистическое выражение SQL MIN.

Max

Возвращает максимальное значение в группе. Реализует статистическое выражение SQL MAX.

StDev

Возвращает статистическое стандартное отклонение всех значений в группе. Реализует агрегат SQL STDEV.

StDevP

Возвращает статистическое стандартное отклонение совокупности всех значений в указанном группой выражении. Реализует агрегат SQL STDEVP.

Sum

Возвращает сумму всех значений в группе. Реализует агрегат SQL SUM.

Var

Возвращает статистическую дисперсию всех значений в группе. Реализует агрегат SQL VAR.

VarP

Возвращает статистическую дисперсию для заполнения по всем значениям в группе. Реализует агрегат SQL VARP.

Avg Distinct

Возвращает уникальные средние значения. Реализует сочетание агрегата AVG и ключевого слова DISTINCT.

Count Distinct

Возвращает уникальные счетчики. Реализует сочетание агрегата COUNT и ключевого слова DISTINCT.

Count Big Distinct

Возвращает уникальное число элементов в группе. Реализует сочетание агрегата COUNT_BIG и ключевого слова DISTINCT.

StDev Distinct

Возвращает уникальные статистические стандартные отклонения. Реализует сочетание агрегата STDEV и ключевого слова DISTINCT.

StDevP Distinct

Возвращает уникальные статистические стандартные отклонения. Реализует сочетание агрегата STDEVP и ключевого слова DISTINCT.

Sum Distinct

Возвращает суммы уникальных значений. Реализует сочетание агрегата SUM и ключевого слова DISTINCT.

Var Distinct

Возвращает уникальные статистические дисперсии. Реализует сочетание агрегата VAR и ключевого слова DISTINCT.

VarP Distinct

Возвращает уникальные статистические дисперсии. Реализует сочетание агрегата VARP и ключевого слова DISTINCT.

Панель «Параметры функции»

На панели «Параметры функции» отображаются параметры для хранимой процедуры или возвращающей табличное значение функции. Отображаются следующие столбцы.

  • **Имя параметра **Отображается имя параметра, определяемого хранимой процедурой или возвращающей табличное значение функцией.

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

Панель «Связи»

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

Отображаются следующие параметры.

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

    Важное примечаниеВажно!

    При использовании с Параллельное хранилище данных SQL Server 2008 R2 метаданные, необходимые для создания соединений, не предоставляются и связи невозможно обнаружить автоматически. Если запрос извлекает данные из базы данных Параллельное хранилище данных SQL Server 2008 R2, все соединения таблицы должны создаваться вручную.

  • **Добавить связь. **Добавляет связь в список Связь.

    Если автоопределение включено, таблицы, столбцы которых используются в запросе, автоматически добавляются в список Связь. Если автоопределение обнаружило связь между двумя таблицами, то одна таблица добавляется в столбец Левая таблица, а другая — в столбец Правая таблица, а между ними создается внутреннее соединение. Каждая связь создает предложение JOIN в запросе. Если таблицы не связаны, то они включаются в столбец Левая таблица, а столбец Тип соединения указывает, что таблицы не связаны с другими таблицами. При включенном автоопределении невозможно вручную добавлять связи между таблицами, которые автоопределение определило как несвязанные.

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

    Порядок, в котором представлены связи в списке Связь, соответствует порядку, в котором соединения выполняются в запросе. Можно изменять порядок связей, перемещая их вверх и вниз в списке.

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

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

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

  • Удалить связь. Удаляет выбранную связь**.**

  • Вверх и **Вниз. **Перемещает связи вверх или вниз в списке Связь. Последовательность, в которой связи помещаются в запрос, может влиять на результаты запроса. Связи добавляются в запрос в том порядке, в котором они представлены в списке Связь.

Отображаются следующие столбцы.

  • Левая таблица. Отображается имя первой таблицы, являющейся частью связи соединения.

  • Тип соединения. Отображает тип инструкции SQL JOIN, используемой в автоматически созданном запросе. По умолчанию, если было обнаружено ограничение внешнего ключа, используется тип INNER JOIN. Другими типами соединений могут быть LEFT JOIN или RIGHT JOIN. Если ни один из данных типов соединения неприменим, столбец Тип соединения отображает значение Без связи. Для несвязанных таблиц не создаются соединения CROSS JOIN, вместо этого необходимо вручную создать связи, соединяя столбцы в левой и правой таблицах. Дополнительные сведения о типах соединений см. в разделе «Основные принципы соединений» в электронной документации по SQL Server на сайте msdn.microsoft.com.

  • **Правая таблица   **Отображается имя второй таблицы в связи соединения.

  • **Соединить таблицы   **Содержит список пар соединенных полей; если связь имеет несколько условий соединения, то пары полей разделяются запятыми (,).

Панель «Примененные фильтры»

На панели «Примененные фильтры» отображаются условия, используемые для ограничения числа строк данных, возвращаемых во время выполнения. Условия, указанные в этой панели, используются для создания предложения SQL WHERE. При выборе режима параметров происходит автоматическое создание параметра отчета. Параметры отчета, основанные на параметрах запроса, позволяют пользователю указывать для запроса значения, управляющие данными в отчете.

Отображаются следующие столбцы.

  • Имя поля Отображается имя поля, к которому будет применено условие.

  • Оператор Отображается операция, которая будет использована в критерии фильтра.

  • Значение Отображается значение, которое будет использовано в критерии фильтра.

  • Параметр Отображается параметр для добавления параметра к запросу. С помощью диалогового окна «Свойства набора данных» можно просмотреть связи между параметрами запроса и параметрами отчета.

Панель результатов запроса

На панели результатов запроса отображаются результаты автоматически созданного запроса, заданного выбором на других панелях. Столбцы результирующего набора — это поля, указанные на панели «Выбранные поля». Данные строк ограничиваются фильтрами, указанными в панели «Примененные фильтры». Если в запрос включены статистические выражения, то в результирующий набор будут включены новые агрегатные столбцы. Например, если столбец Color обработан с помощью агрегата Count, результат запроса будет содержать новый столбец. По умолчанию для этого столбца задается имя Count_Color.

Эти данные представляют значения из источника данных на время выполнения запроса. Данные не сохраняются в определении отчета. При обработке в отчет возвращаются реальные данные.

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

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

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

Кнопка

Описание

Редактировать как текст

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

Импорт

Импорт существующего запроса из файла или отчета. Поддерживаются SQL и RDL-файлы.

Выполнить запрос

Выполните запрос. Результирующий набор отображается на панели результатов запроса.

Основные сведения об автоматически создаваемых запросах

При выборе на панели «Представление базы данных» таблиц и столбцов или хранимых процедур и представлений, конструктор запросов получает из схемы базы данных базовые связи по первичному и внешнему ключам. Анализируя эти связи, конструктор запросов определяет связи между двумя таблицами и добавляет соединения в запрос. Затем можно изменить этот запрос, добавляя группировку и агрегаты добавляя или изменяя связи и добавляя фильтры. Чтобы просмотреть текст запроса, отображающий столбцы, из которых извлекаются данные, соединения между таблицами и любые группы или агрегаты, нажмите Изменить как текст.

Текстовый конструктор запросов

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