Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DataTable.Select() / 9 сообщений из 9, страница 1 из 1
08.07.2009, 16:19
    #36080262
lans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
Как можно в DataTable.Select() сделать Group By?
...
Рейтинг: 0 / 0
08.07.2009, 17:03
    #36080402
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
если надо убрать лишние строки, то тогда используйте ToTable
если для агрегатных вычислений, то Compute , но он существенно ограничен, в сравнении с native SQL.
В случае сложной группировки с агрегированием используют перебор строк как ни печально.
...
Рейтинг: 0 / 0
08.07.2009, 17:27
    #36080458
WYPMAH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
lansКак можно в DataTable.Select() сделать Group By?
сделать это на стороне сервера и не мучатся ;)

_______________
AnimeBay - аниме магазин, который Вас не разочарует.
...
Рейтинг: 0 / 0
08.07.2009, 17:27
    #36080459
lans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
Мне нужно всего лишь навсего avg одной колонки а там их всего три.. две текстовые одна float
можно ли мне добиться группировки и avg float колонки этим самым Compute?
...
Рейтинг: 0 / 0
08.07.2009, 18:21
    #36080561
lans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
Пытаюсь решить проблему следующим орбразом
пишу
Код: plaintext
1.
2.
   SqlDataAdapter AdGetData = new SqlDataAdapter(" use Survey; declare  @test table (X varchar(500),Y varchar(500),Val float)" + InsertQuery + "; Select  X, Y, round(Avg(Val),2)  from  @test group by X, Y", con);
            AdGetData.Fill(Tb);
Только вот в Tb у меня почему во первых не только сгруппированные данные но и те данные которые я группировал а во вторых строки между группами разделены одной строкой
...
Рейтинг: 0 / 0
08.07.2009, 18:48
    #36080617
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
lansМне нужно всего лишь навсего avg одной колонки а там их всего три.. две текстовые одна float
можно ли мне добиться группировки и avg float колонки этим самым Compute?
Код: plaintext
table.Compute("AVG(Col3)", "Col1 = 'One' AND Col2 = 'Two'")
...
Рейтинг: 0 / 0
08.07.2009, 19:04
    #36080648
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
Вот еще нашел через Linq
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
            DataTable table = new DataTable();
            table.Columns.Add("col1", typeof(string));
            table.Columns.Add("col2", typeof(string));
            table.Columns.Add("Value", typeof(decimal));
            table.Rows.Add("123", "1", 4.0M);
            table.Rows.Add("123", "1", 5.0M);
            table.Rows.Add("1", "123", 1.0M);
            table.Rows.Add("123", "2", 2.0M);
            table.Rows.Add("123", "2", 3.0M);

            var query = from row in table.AsEnumerable()
                        group row by new
                        {
                            col1 = row.Field<string>("col1"),
                            col2 = row.Field<string>("col2")
                        }
                        into grp
                        select new
                        {
                            Col1 = grp.Key.col1,
                            Col2 = grp.Key.col2,
                            Quantity = grp.Sum(r => r.Field<decimal>("Value")),
                            Average = grp.Average(r => r.Field<decimal>("Value"))
                        };

            Console.WriteLine("{0,5} {1,5} {2,5} {3,5}", "Col1", "Col2", "Quantity", "Average");
            foreach (var item in query)
            {
                Console.WriteLine("{0,5} {1,5} {2,6} {3,6}", item.Col1,
                item.Col2, item.Quantity, item.Average);
            }
...
Рейтинг: 0 / 0
09.07.2009, 09:42
    #36081132
WYPMAH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
lansМне нужно всего лишь навсего avg одной колонки а там их всего три.. две текстовые одна float
можно ли мне добиться группировки и avg float колонки этим самым Compute?
вы всё же считаете, что линк или другие способы намного удобнее и быстрее правильно составленного запроса?

_______________
AnimeBay - аниме магазин, который Вас не разочарует.
...
Рейтинг: 0 / 0
09.07.2009, 13:15
    #36081866
lans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataTable.Select()
Нету у меня на базе этой таблицы.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DataTable.Select() / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]