русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-24; просмотров: 862; Нарушение авторских прав


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

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

В любом перекрестном запросе логически можно выделить:

поле или поля, образующие заголовки строк;

поле, используемое в качестве заголовков столбцов;

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

Как правило, перекрестный запрос составляется на основе данных из нескольких таблиц.

В схематическом виде запрос на выборку с группировкой можно представить в следуем виде:

Select КодПост, КодТов, Sum(КолТов*Цена) as СумПост

From < связка таблиц >

Where <условие отбора записей>

Group by КодПост, КодТов

Преобразование запроса на выборку с группировкой в перекрестный запрос производится в три этапа:

В запрос включаются две дополнительные команды Transform и Pivot. Команда Transform используется для обозначения того, что запрос будет являться перекрестным, а команда Pivot используется для группировки по столбцам.



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

Далее определяется, какое поле будет соответствовать заголовкам строк, а какое - заголовкам столбцов. При определении того, какое поле будет являться заголовками столбцов, проверяются два условия:

входит ли поле в предложение Select,

входит ли поле в состав полей с группировкой.

Поле, удовлетворяющее этим условиям, исключается из предложений Select и Group by и переносится в предложение Pivot.

Преобразуем запрос на выборку с группировкой в перекрестный запрос:

Transform Sum (КолТов*Цена) as СумПост

Select КодПост

From < связка таблиц >

Where <условие отбора записей>

Group by КодПост

Pivot КодТов



<== предыдущая лекция | следующая лекция ==>
Запрос на выборку с группировкой | Запрос на удаление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.714 сек.