У меня есть таблица, которая похожа на это:
Month Site Val
2009-12 Microsoft 10
2009-11 Microsoft 12
2009-10 Microsoft 13
2009-12 Google 20
2009-11 Google 21
2009-10 Google 22
И я хочу получить 2 таблицы измерений, которые дают мне "Val" в течение месяца каждого сайта, как:
Month Microsoft Google
2009-12 10 20
2009-11 12 21
2009-10 13 22
Но выгода, я не знаю все возможные значения, которые могут быть в "Сайте". Если новый сайт появляется, я хочу автоматически получить новый столбец в своей получающейся таблице.
Все примеры кода я видел это, могли сделать, это потребовало меня к hardcode "Microsoft и Google" в тексте запроса.
Я видел тот, который не сделал, но он в основном фальсифицировал его путем списка Сайтов и генерации запроса на лету (concatting строка), который имел те имена столбцов в нем.
Разве там путь не состоит в том, чтобы заставить SQL Server 2008 делать это без взлома как этот?
Примечание: Я должен быть в состоянии выполнить это как запрос, который я отправляю от ASP.NET, я не могу сделать хранимых процедур или другого материала как этот.
Спасибо!
Daniel
Примере вы связаны с использованием динамического SQL. К сожалению, нет другого встроенного метода для поворота в SQL Server, когда выходные колонны не известны заранее.
Если данные не слишком велики, это, вероятно, проще всего просто запустить обычный запрос строки из ASP.NET и выполнить свой поворот в код приложения. Если данные очень большие, то вам придется генерировать SQL динамически после первого запроса для возможных значений столбца.
Обратите внимание, что вам на самом деле не нужно писать оператор SQL, который генерирует динамический SQL; Вы можете просто генерировать SQL в ASP.NET, и это, скорее всего, будет намного проще. Просто не забудьте избежать различных значений
.