Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - выбрать записи по условию общей суммы? / 11 сообщений из 11, страница 1 из 1
15.04.2008, 11:04
    #35255337
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
Привет всем! Как на LINQ написать запрос к таблице
Код: plaintext
1.
2.
3.
create table Tab (
id int prinary key,
amount money
) 
выбирающие строки так чтобы сумма выбранных строк по колонке Tab.amount была меньше равна заданной?
...
Рейтинг: 0 / 0
15.04.2008, 11:09
    #35255356
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
Что то типа для заданной суммы SumAll
Код: plaintext
1.
2.
from c in Tab
where TakeWhile(c => sum(c) <=SumAll)
select c
...
Рейтинг: 0 / 0
15.04.2008, 12:45
    #35255848
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
получилось так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        decimal sum_row =  0 ;
        decimal sum(decimal pack_amount)
        {
            return sum_row += pack_amount;
        }
void Calc()
{
var query  =
(from c in db.Tabs
select new{c.id, c.amount , sum_amount = sum(c.amount )}).ToList().Where( ost=> ost. sum_amount<=ОБЩАЯ СУММА) 
 

}
...
Рейтинг: 0 / 0
15.04.2008, 13:49
    #35256090
LINQ - выбрать записи по условию общей суммы?
Это фильтрация на клиенте! Плодумайте как сделать на сервере!
...
Рейтинг: 0 / 0
15.04.2008, 17:12
    #35256882
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
думал как написать на SQL - не придумал :) по крайней мере в лоб на сервере нельзя, возможно через sql процедуру можно
...
Рейтинг: 0 / 0
15.04.2008, 17:30
    #35256941
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
зыдумал как написать на SQL - не придумал :) по крайней мере в лоб на сервере нельзя, возможно через sql процедуру можно
На MS SQL 2005 есть RANK() OVER (PARTITION BY ажется ими можно, но мне интересно как на LINQ! У меня получилась клиентская фильтрация, в моём случае терпимо, но м.б. можно и прямо что то написать?
...
Рейтинг: 0 / 0
16.04.2008, 12:51
    #35258608
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
зыдумал как написать на SQL - не придумал :) по крайней мере в лоб на сервере нельзя, возможно через sql процедуру можно
решение здесь
При этом условием искать строки в сумме меньше суммы для таблицы
Код: plaintext
create table tab(\nid int identity( 1 , 1 ) primary key,\namount money\n)
...
Рейтинг: 0 / 0
16.04.2008, 13:21
    #35258745
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
На LINQ это выглядит так
Код: plaintext
1.
2.
3.
4.
5.
6.
var query =
                from c in db.tabs
                where (
                from s in db.tabs
                where s.id < c.id
                select s).Sum(s => s.amount) <  10 
                select c;
Проверено работает
Скрипт создания таблицы
Код: plaintext
1.
2.
3.
create table tab(
id int identity( 1 , 1 ) primary key,
amount money
)
...
Рейтинг: 0 / 0
16.04.2008, 14:28
    #35259007
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
Уточнение - это запрос на сервере!
...
Рейтинг: 0 / 0
17.04.2008, 20:53
    #35263104
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
круто
интересно, быстро ли работает при больших объемах данных
...
Рейтинг: 0 / 0
18.04.2008, 14:05
    #35264642
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - выбрать записи по условию общей суммы?
зыкруто
интересно, быстро ли работает при больших объемах данных
У меня условие куда более сложное чем этот тестовый пример, но по сравнению с клиентским фильтром, на порядок
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - выбрать записи по условию общей суммы? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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