Перекрестная таблица.

AnKa
Дата: 12.03.2001 17:14:04
Не подскажете ли уважаемые, как выглядит запрос для формирования перекрестной таблицы - когда кол-во столбцов неизвестно. Например, имеется табл с полями "Date", "Company","Sales". Хочется увидеть результат в виде: Столбцы - "Company", строки - "Date", значения в ячейках - "Sales".
Заранее благодарен.
Garya
Дата: 12.03.2001 19:29:47
В T-SQL отсутствует возможность формирования перекрестного запроса подобно тому, как это делается в DAO Access. Как выкручиваться?
Вариант 1. Использовать select со множество фраз case. На самом деле такой запрос вернет фиксированное количество полей, но содержаться в них от случая к случаю будет разнородная информация, а последние неиспользуемые поля будут содержать Null (или еще какое-нибудь специальное значение, сигнализирующее о том, что на самом деле данный столбец смысла не имеет.
Вариант 2. Делаешь скрипт, который сначала определяет количество полей, которое должен вернуть запрос, создаешь временную таблицу с соответствующим количеством полей (можно с помощью DSQL, либо на клиенте формируешь DDL-команду), затем аналогично формируешь команду, записывающую во временную таблицу соответствующим образом сгруппированные значения, и наконец возсращаешь полученный во временной таблице набор записей.
alexeyvg
Дата: 12.03.2001 19:30:06
Очень просто! Строите динамический запрос, в котором к-во экземпляров таблиц равно к-ву столбцов (уникальных значений Company). И всё!
Glory
Дата: 12.03.2001 20:07:32
Может поможет
http://www.osp.ru/win2000/sql/2001/02/665.htm