Динамическое добавление столбцов в представление или возврат из хранимой процедуры - PullRequest
0 голосов
/ 19 апреля 2011

Я нашел много кусочков этого, но я не могу собрать их вместе. Это в основном идея таблицы, где name - это varchar, date - это datetime, а number - это int

Name | Date | Number
A     1-2-11  15
B     1-2-11   8
A     1-1-11   5

I'd like to create a view that looks like this

Name | 1-2-11 | 1-1-11
A      15       5
B       8

Сначала я использовал временную таблицу и добавлял к ней каждую строку даты. Я читал на другом форуме, что это был главный источник ресурсов. Это правда? Есть ли лучший способ сделать это?

Ответы [ 4 ]

0 голосов
/ 19 апреля 2011

Я бы объединил динамический SQL с осью, как я упоминал в этом ответе .

0 голосов
/ 19 апреля 2011

Вы хотите изучить операторы "кросс-таблица" или "сводная таблица".В SQL Server 2005 и выше его PIVOT, но синтаксис различается между платформами.

Это очень сложная тема, особенно потому, что вы хотите добавить столбцы в представление по мере роста данных со временем.Помимо документации вашей платформы, ознакомьтесь с множеством других SO-сообщений на эту тему.

0 голосов
/ 19 апреля 2011

Я бы сделал это с помощью Access или Excel вместо T-SQL.

0 голосов
/ 19 апреля 2011

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

Часто динамическое использование sql быстрее, но это может быть очень опасно, поэтому будьте осторожны.

Чтобы действительно знать, что является лучшим решением для вашей проблемы, нам нужно больше информации - сколько данных - сколько изменений ожидается в разных столбцах и т. Д.

Однако,это правда, и PIVOT, и Dynamic SQL будут работать быстрее, чем временная таблица.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...