Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перекрестный запрос [D6, MSSQL, MS Access 2000]


Nikolai_S ©   (2004-01-30 17:19:00) 

Всем доброго времени суток.
Такая задача:
имеются три таблицы:
1. XPARAM - Название параметра по оси X
2. YPARAM - Название параметра по оси Y
3. VALUES - значение параметра в точке (X, Y).

Как составить SQL-запрос, чтобы в результате получилась бы таблица, в которой:
- количество строк = количеству строк в таблице YPARAM;
- количество столбцов = количеству столбцов в таблице XPARAM плюс 1 (1-й столбец - названия параметров из таблицы YPARAM);
- ячейки таблицы должны быть заполнены соответсвующими значениями параметров (x, y) из таблицы VALUES.

В MS Access имеется возможность создания перекрестных запросов (TRANSFORM..PIVOT), но мне нужно чтобы и в MS SQL Server работало. И потом TRANSFORM..PIVOT не выводит те строки и столбцы, которые являются пустыми.

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


sniknik   (2004-01-30 17:26:00) [1]

> но мне нужно чтобы и в MS SQL Server работало
там тоже есть подобное см. BOL на pivot table - Cross-Tab Reports, там же пример.


Наверх

Титульная страница Поиск, карта сайта Написать письмо