2009-06-22 4 views
2

У меня есть результат, как это из запроса SQLASP.NET SQL Query требуется

Month Day Customer  Item 
------------------------------------------ 
January 1 John   Pencil 
January 1 Jack   --- 
January 1 Steve  Stapler 
January 2 John   --- 
January 2 Jack   --- 
January 2 Steve  VisitingCard 
January 3 John   --- 
January 3 Jack   Marker 
January 3 Steve  --- 
January 4 John   --- 
January 4 Jack   --- 
January 4 Steve  --- 
January 5 John   Scrapbook 
January 5 Jack   --- 
January 5 Steve  --- 
.... 
.... 
.... 
February 1 John   --- 
February 1 Jack   --- 
February 1 Steve  Marker 

Я хотел бы, чтобы это было представлено в asp.net GridView ниже

       January 
Customer 1 2 3 4 5 6 7 8 9 10 11 ... 25 26 27 28 29 30 31 
--------------------------------------------------------- 
John  P - - - N - - - - -- --  -- -- -- -- -- -- -- 
Jack  - - M - - - - - - -- --  -- -- -- -- -- -- -- 
Steve S V - - - - - - - -- --  -- -- -- -- -- -- -- 
          February 
Customer 1 2 3 4 5 6 7 8 9 10 11 ... 25 26 27 28 
------------------------------------------------ 
John  - - - - - - - - - -- --  -- -- -- -- 
Jack  - - - - - - - - - -- --  -- -- -- -- 
Steve M - - - - - - - - -- --  -- -- -- -- 

Как это можно сделать либо в SQL Server 2005, либо в asp.net 2.0?

Просьба предоставить образец запроса для PIVOT, поскольку для его использования требуется некоторая функция агрегации.

+1

Немного форматирования было бы оценено, поэтому мы сможем лучше понять ваш вопрос. –

+1

@Paulo - сделано; @Akmal - обратите внимание на синтаксис «уценки» при отправке форматированных вопросов –

+0

@Marc - Я не могу найти уценку, о которой вы упомянули. Можете ли вы мне помочь? – Akmal

ответ

0

Возможно, вы захотите использовать такой инструмент, как DevExpress, который предоставит вам pivot table. Затем вы можете привязать сводную таблицу к вашим данным, и это сделает вашу работу.

4

Что вам нужно - это команда Pivot. Я не знаком с использованием команды, но у geekswithblogs есть хороший учебник о том, как его использовать.

1

Я думаю, что вы хотите посмотреть на использование команды PIVOT в вашем SQL-запросе.

3

Вы не можете (чисто) достичь этого с помощью функции PIVOT, так как функция PIVOT требует предварительного определения столбцов, которые выводятся.

Поскольку месяцы имеют различное количество дней, вам нужно будет написать 12 запросов.

IMO-поворот всегда должен выполняться как часть пользовательского интерфейса. Агрегация - это подходящая вещь для конца SQL, но

EDIT: Если вы объясните, как построена ваша сетка данных (т. Е. Откуда возникает P и т. Д.), То я могу помочь сгенерировать вам соответствующий SQL.

+0

У меня есть 3 таблицы после присоединения, в которых я получаю четыре столбца, показанные в первой таблице. Я дал P, M, S и т. Д.,. для объяснения вопроса здесь. В действительности мы будем показывать маленькие иконки в сетке. (Используя столбцы шаблонов в зависимости от значения, отобразится соответствующий значок. Скажем, если значение Pencil, будет отображаться значок карандаша.) – Akmal

+0

Так может ли данный клиент иметь несколько элементов на заданную дату? –

+0

№ Макс. Одна запись для каждого клиента в любую конкретную дату. – Akmal

Смежные вопросы