|
Перекрестная таблица.
|
|||
---|---|---|---|
#18+
Не подскажете ли уважаемые, как выглядит запрос для формирования перекрестной таблицы - когда кол-во столбцов неизвестно. Например, имеется табл с полями "Date", "Company","Sales". Хочется увидеть результат в виде: Столбцы - "Company", строки - "Date", значения в ячейках - "Sales". Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2001, 17:14 |
|
Перекрестная таблица.
|
|||
---|---|---|---|
#18+
В T-SQL отсутствует возможность формирования перекрестного запроса подобно тому, как это делается в DAO Access. Как выкручиваться? Вариант 1. Использовать select со множество фраз case. На самом деле такой запрос вернет фиксированное количество полей, но содержаться в них от случая к случаю будет разнородная информация, а последние неиспользуемые поля будут содержать Null (или еще какое-нибудь специальное значение, сигнализирующее о том, что на самом деле данный столбец смысла не имеет. Вариант 2. Делаешь скрипт, который сначала определяет количество полей, которое должен вернуть запрос, создаешь временную таблицу с соответствующим количеством полей (можно с помощью DSQL, либо на клиенте формируешь DDL-команду), затем аналогично формируешь команду, записывающую во временную таблицу соответствующим образом сгруппированные значения, и наконец возсращаешь полученный во временной таблице набор записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2001, 19:29 |
|
Перекрестная таблица.
|
|||
---|---|---|---|
#18+
Очень просто! Строите динамический запрос, в котором к-во экземпляров таблиц равно к-ву столбцов (уникальных значений Company). И всё! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2001, 19:30 |
|
|
start [/forum/topic.php?fid=46&msg=32002954&tid=1827213]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 396ms |
0 / 0 |