kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Sheraz
Sheraz
Вопрос

Pivot Table в c#

Мне нужно создать pivot таблицу в .net. Не могу использовать сторонние средства управления (если только они не бесплатные). Я пытался найти документацию, которая объясняет, как создать pivot table (алгоритм или шаги) в целом, но почти все связано с excel. Кто-нибудь знает, как создать pivot table на c#? Спасибо

11 2009-07-01T15:07:52+00:00 3
 Aaron
Aaron
Редактировал вопрос 16-го января 2013 в 8:44
Программирование
c#
ado.net
Md.  Sumonur Rahman
Md. Sumonur Rahman
1-го декабря 2010 в 9:06
2010-12-01T09:06:11+00:00
Дополнительно
Источник
Редактировать
#9218998

Помогаем здесь http://msdn.microsoft.com/en-us/library/aa172756%28SQL.80%29.aspx

Фактическая таблица:

Year   Quarter  Amount    
1990      1      1.1  
1990      2      1.2  
1990      3      1.3  
1990      4      1.4  
1991      1      2.1  
1991      2      2.2  
1991      3      2.3  
1991      4      2.4  
1992      4      2.4  

Желаемый результат: (Здесь Q - квартал)

Year       Q-1       Q-2       Q-3       Q-4      
1990       1.1       1.2       1.3       1.4  
1991       2.1       2.2       2.3       2.4  
1992       0.0       0.0       0.0       2.4  

Запрос:

Use Northwind    
GO

CREATE TABLE Pivot    
( Year      SMALLINT,    
  Quarter   TINYINT,    
  Amount    DECIMAL(2,1) )    
GO

INSERT INTO Pivot VALUES (1990, 1, 1.1)    
INSERT INTO Pivot VALUES (1990, 2, 1.2)    
INSERT INTO Pivot VALUES (1990, 3, 1.3)    
INSERT INTO Pivot VALUES (1990, 4, 1.4)    
INSERT INTO Pivot VALUES (1991, 1, 2.1)    
INSERT INTO Pivot VALUES (1991, 2, 2.2)    
INSERT INTO Pivot VALUES (1991, 3, 2.3)    
INSERT INTO Pivot VALUES (1991, 4, 2.4)    
INSERT INTO Pivot VALUES (1992, 4, 2.4)   
GO

SELECT * FROM Pivot    
GO

SELECT Year,    
    SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,    
    SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,    
    SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,    
    SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4    
FROM Northwind.dbo.Pivot    
GROUP BY Year    
GO

Другой вывод:

SELECT P1.*, (P1.Q1 + P1.Q2 + P1.Q3 + P1.Q4) AS YearTotal    
FROM (SELECT Year,
             SUM(CASE P.Quarter WHEN 1 THEN P.Amount ELSE 0 END) AS Q1,
             SUM(CASE P.Quarter WHEN 2 THEN P.Amount ELSE 0 END) AS Q2,
             SUM(CASE P.Quarter WHEN 3 THEN P.Amount ELSE 0 END) AS Q3,
             SUM(CASE P.Quarter WHEN 4 THEN P.Amount ELSE 0 END) AS Q4
     FROM Pivot AS P
     GROUP BY P.Year) AS P1
GO
 LPL
LPL
Редактировал ответ 17-го сентября 2011 в 10:30
6
0
 MatthewMartin
MatthewMartin
1-го июля 2009 в 3:36
2009-07-01T15:36:13+00:00
Дополнительно
Источник
Редактировать
#9218997

В MS-Access есть команда TRANSFORM (которая выполняет поворот), поэтому вы можете использовать ADO.NET для запроса к файлу ms-access mdb, а затем использовать сквозные запросы в нем, чтобы добраться до источника данных, который не может выполнять поворот (обычно это MS-SQL/T-SQL). Я проверил концепцию этого метода, и он сработал и оказался примерно на 5000 LOC короче, чем реализация на VBScript, которая выполняла поворот с использованием массивов.

Обычные пренебрежительные замечания о MS-Access здесь не применимы, потому что вы на самом деле не храните данные в MS-Access.

2
0
 Jeganinfo
Jeganinfo
23-го февраля 2011 в 11:55
2011-02-23T11:55:08+00:00
Дополнительно
Источник
Редактировать
#9218999

CellSetGrid - это элемент управления ASP .Net (c#) с открытым исходным кодом, который предлагает функциональность, подобную таблице pivot.

Раньше он был доступен для загрузки на этом сайте: http://www.SQLServerAnalysisServices.com

Теперь сайт больше не размещает этот элемент управления. Поэтому я загрузил исходник элемента управления - CellSetGrid здесь.

  1. Вы можете собрать исходник
  2. Добавьте его как элемент управления в инструментарий Visual Studio.
  3. Перетащите элемент управления на веб-форму
  4. Установите строку подключения к кубу
  5. Это покажет все измерения и группы измерений, и вы сможете перетащить и отбросить то, что вам нужно, чтобы получить таблицу pivot, подобную функциональности.
 LPL
LPL
Редактировал ответ 17-го сентября 2011 в 10:59
0
0
Похожие сообщества 16
DotNetRuChat
DotNetRuChat
6 630 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
Microsoft Stack Jobs
Microsoft Stack Jobs
2 408 пользователей
Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks
Открыть telegram
С#
С#
2 330 пользователей
Стараемся не флудить. Пишем по делу. Правила: https://t.me/professorweb/430450 Для флуда @svoboda_obsh
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
CODE BLOG / C#
CODE BLOG / C#
1 763 пользователей
Чат для .NET разработчиков и C# программистов. По всем вопросам: @shwanoff Youtube-канал: https://youtube.com/codeblog Основной канал: @codeblog Вконтакте: https://vk.com/codeblog Правила: https://t.me/codeblog_csharp/246972 Вакансии по тегу #work
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 16 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией