powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / yне получается выбрать
15 сообщений из 15, страница 1 из 1
yне получается выбрать
    #38150645
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 private void button1_Click(object sender, EventArgs e)
        {

            List<Class1> cl = new List<Class1>();

            cl.Add(new Class1 { D270 = 11, N1 = 1222, D80 = 1, D09_1 = 0 });
            cl.Add(new Class1 { D270 = 113, N1 = 1223, D80 = 2, D09_1 = 0 });
            cl.Add(new Class1 { D270 = 114, N1 = 122332, D80 = 2, D09_1 =1 });
            cl.Add(new Class1 { D270 = 1111, N1 = 122222, D80 = 3, D09_1 = 0 });
            cl.Add(new Class1 { D270 = 112121, N1 = 19222, D80 = 4, D09_1 = 0 });
            cl.Add(new Class1 { D270 = 1199, N1 = 199222, D80 = 4, D09_1 = 1 });
            cl.Add(new Class1 { D270 = 11565, N1 = 12488722, D80 = 4, D09_1 = 2 });
}



Господа что - то не получается составить запрос следующего плана на linq.
Задача. Мне нужно отобрать 4 записи по условию D09_1 было максимально

т.е. выборка должна содержать D270 = 11,D270 = 114, D270 = 1111,D270 = 11565
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150683
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zac,

а почему D270 = 1199 не попадает?
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150695
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
IEnumerable<Class1> items = cl.Where(d => d.D09_1 == cl.Max(x => x.D09_1));
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150716
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
pation,

такое условие. D80 отчетный период а D09_1 это актуальный документ т.е. отчетный период будет всегда 1.
1-1 квартал
2-2 квартал
3- 3 квартал
4- 4 квартал
в одном квартале будет только 1 документ это D09_1 максимальный но их может быть несколько корректировак

чем больше D09_1 значит документ актуальный и только он должен отбиратся
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150721
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
МСУ,

здесь попадает 1 документ с MAX-> D09_1 , а их должно быть 4
в 1 посте я указал что должно выбираться по D270
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150769
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zacМСУ,

здесь попадает 1 документ с MAX-> D09_1 , а их должно быть 4
в 1 посте я указал что должно выбираться по D270

Код: c#
1.
2.
var group = cl.GroupBy(d => d.D09_1).Where(d => d.Count() == 4).SelectMany(d => d);
var items = group.Where(d => d.D09_1 == group.Max(x => x.D09_1));
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150814
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
МСУ,

D09_1 должно быть МАХ
а здесь все равно значение 0 вытаскивает
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150825
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
zac,

[img=C:\Безымянный.jpg]
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150859
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zacМСУ,

D09_1 должно быть МАХ
а здесь все равно значение 0 вытаскивает
Ты же сказал

zacМне нужно отобрать 4 записи

Там выбирается 4 записи.
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150888
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
zac,

да 4 записи но но чтобы был D09_1 самый большой
Вот например D80=4 есть три записи

Код: c#
1.
2.
3.
 cl.Add(new Class1 { D270 = 112121, N1 = 19222, D80 = 4, D09_1 = 0 });
            cl.Add(new Class1 { D270 = 1199, N1 = 199222, D80 = 4, D09_1 = 1 });
            cl.Add(new Class1 { D270 = 11565, N1 = 12488722, D80 = 4, D09_1 = 2 });



надо чтобы попадала запись с максимальным значением т.е. D270 =11565 , а в твоем запросе попадет запись D270=112121
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150921
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zacpation,

такое условие. D80 отчетный период а D09_1 это актуальный документ т.е. отчетный период будет всегда 1.
1-1 квартал
2-2 квартал
3- 3 квартал
4- 4 квартал
в одном квартале будет только 1 документ это D09_1 максимальный но их может быть несколько корректировак

чем больше D09_1 значит документ актуальный и только он должен отбиратся

никуя не понял вопрос остаётся тот же:
почему D270 = 1199 не попадает
а D270 = 11 попадает
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150926
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага... вообще непонятно... Fuzzy Logic detected ^)))
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150928
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
cl.OrderByDescending( x => x.D09_1).ThenByDescending( x => x.D270 ).Take(4)
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150948
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zacpation,

такое условие. D80 отчетный период а D09_1 это актуальный документ т.е. отчетный период будет всегда 1.
1-1 квартал
2-2 квартал
3- 3 квартал
4- 4 квартал
в одном квартале будет только 1 документ это D09_1 максимальный но их может быть несколько корректировак

чем больше D09_1 значит документ актуальный и только он должен отбиратся

посмотрел на твои данные и допёр, что тебе нужно, но объяснять ты никуя не умеешь
Код: c#
1.
var ret = cl.GroupBy(c => c.D80).Select(g => g.OrderByDescending(c => c.D09_1).First());


то?
...
Рейтинг: 0 / 0
yне получается выбрать
    #38150980
zac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zac
Гость
pation,

Спасибо. Оказывается все так просто. За изложение своих проблем извиняюсь. Мне показалось что понятно.

Всем респект кто откликнулся.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / yне получается выбрать
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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