Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Помогите сочинить запрос / 24 сообщений из 24, страница 1 из 1
11.11.2015, 15:20
    #39100798
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Есть табличка:
MainOrganiszationMainInRegionCodes_IdName1078A10126A90174A70086A60078A40084A110050A100074A80078A30178A20078A5

необходимо выполнить сортировку по полю MainOrganiszation затем MainInRegion с учетом Codes_Id и по алфавиту Name чтобы в результате получилось:

MainOrganiszationMainInRegionCodes_IdName1078A10178A20078A30078A40078A50086A60174A70074A80026A90050A100084A11

никак сие не могу оформить в виде LINQ или Lambda - получается все что угодно только не нужный результат.
Буду весьма признателен за помощь...

ПыСы:
Вот последняя попытка написания кода:
Код: c#
1.
2.
3.
4.
5.
6.
.Where(c => c.Status == RecordStatus.Active)
                    .OrderBy(n => n.MainOrganiszation ? 0 : 1)
                    .ThenBy(n => n.Codes_Id)
                    .ThenBy(n => n.MainInRegion ? 0 : 1)
                    .ThenBy(n => n.Title)
                    .ToListAsync()
...
Рейтинг: 0 / 0
11.11.2015, 15:25
    #39100805
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunter,
Наверное по Name не сортируется толком, а примерно так:
A1
A10
A11
A2
A3
...
?
...
Рейтинг: 0 / 0
11.11.2015, 15:27
    #39100807
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
И приведите приоретность полей для сортироки, а то каша какая-то.
...
Рейтинг: 0 / 0
11.11.2015, 15:29
    #39100810
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
1) Освойте для себя .OrderByDescending, .ThenByDescending
2) Что-нить мешает до начала сортировки выяснить код Codes_Id для MainOrganiszation?
...
Рейтинг: 0 / 0
11.11.2015, 15:30
    #39100812
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Axeleron,

Я думаю, ему нужна сортировка по Codes_Id, но чтобы наверху был код главной организации
(гадание на хрустальном шаре)
...
Рейтинг: 0 / 0
11.11.2015, 15:34
    #39100820
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
в результирующем примере обычная сортировка по Name стобцу с разбиением его на буквенную и цифровую часть
...
Рейтинг: 0 / 0
11.11.2015, 15:42
    #39100836
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Konst_Oneв результирующем примере обычная сортировка по Name стобцу с разбиением его на буквенную и цифровую частьпример не очень адекватный, пытаюсь сделать вывод из тоже недостаточно адекватного объяснения ТС
...
Рейтинг: 0 / 0
11.11.2015, 15:46
    #39100845
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Да согласен результат не совсем удачный я привел... отбросим пока Name.
Смысл вот в чем: запись с полем MainOrganiszation = 1 всегда первая и она всегда одна. Далее у каждой записи есть пары MainInRegion и Codes_Id - они располагаются так: MainInRegion = 1 первая потом остальные. Но тут вся проблема у меня в том, что они должны быть сгруппированы по Codes_Id тоесть если у записи Ax MainInRegion = 1 и Codes_Id = 78 она первая. затем идут все с Codes_Id = 78 с сортировкой по MainInRegion.
...
Рейтинг: 0 / 0
11.11.2015, 15:49
    #39100849
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
что-то вроде этого:
MainOrganiszationMainInRegionCodes_IdName1078Ыыыы0178 Зыфште0078У-у-у0078Бла-бла0078Бугага0086Абугага0174Хххх0074Др-др0026Пуг0050Fug008433слона
...
Рейтинг: 0 / 0
11.11.2015, 15:54
    #39100857
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunterAx MainInRegion = 1 и Codes_Id = 78 она первая. затем идут все с Codes_Id = 78 с сортировкой по MainInRegion.я задал вопрос
Shocker.Pro2) Что-нить мешает до начала сортировки выяснить код Codes_Id для MainOrganiszation?ответ будет?
...
Рейтинг: 0 / 0
11.11.2015, 15:55
    #39100860
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunter,
Я так и не увидел логической связи между MainInRegion и Codes_Id. И так не понял, почему первая запись в MainInRegion имеет значение 0, а не 1...
...
Рейтинг: 0 / 0
11.11.2015, 16:02
    #39100879
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Shocker.Pro,
ничего не мешает.
...
Рейтинг: 0 / 0
11.11.2015, 16:04
    #39100886
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunterShocker.Pro,
ничего не мешает.тогда
Код: c#
1.
2.
3.
4.
                    .OrderBy(n => n.Codes == MainCode ? 0 : 1)
                    .ThenBy(n => n.Codes_Id)
                    .ThenByDescending(n => n.MainInRegion)
                    .ThenBy(n => n.Name)
...
Рейтинг: 0 / 0
11.11.2015, 16:05
    #39100887
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Axeleron,

связь такая: Codes_Id - код региона, MainInRegion - признак того что организация в регионе главная. В том случае если она (организация) в регионе одна (26, 50, 84) - MainInRegion значения не имеет (хоть 0 хоть 100 - без разницы)
...
Рейтинг: 0 / 0
11.11.2015, 16:14
    #39100903
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunter,
Не проверял...
Код: c#
1.
2.
3.
4.
5.
6.
.Where(c => c.Status == RecordStatus.Active)
                    .OrderByDescending(n => n.MainOrganiszation ? 0 : 1)
                    .ThenBy(n => n.Codes_Id)
                    .ThenByDescending(n => n.MainInRegion ? 0 : 1)
                    .ThenBy(n => n.Title)
                    .ToListAsync()
...
Рейтинг: 0 / 0
11.11.2015, 16:26
    #39100924
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
AxeleronНе проверял...не взлетит. Коды 78 должны скопиться наверху (см. первый пример)

Чтобы это реализовать только запросами, надо джойнить таблицу саму к себе. Но проще и быстрее сначала определить код главной организации (раз это допустимо).
...
Рейтинг: 0 / 0
11.11.2015, 16:41
    #39100945
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Shocker.Pro,

это не работает. да коды 78 действительно скопились наверху но дальше:
Codes_Id
78
78
78
78
78
26
74
86
84
50
74

74 - не сгруппировался
...
Рейтинг: 0 / 0
11.11.2015, 16:41
    #39100947
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Shocker.Proне взлетит. Коды 78 должны скопиться наверху (см. первый пример)
Да, вроде, нет там никакой сортировки по Codes_Id.
...
Рейтинг: 0 / 0
11.11.2015, 16:51
    #39100959
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunterShocker.Pro,
74 - не сгруппировалсяне может быть, показывай получившийся запрос.
...
Рейтинг: 0 / 0
11.11.2015, 16:53
    #39100962
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
AxeleronДа, вроде, нет там никакой сортировки по Codes_Id.Хм. Вообще-то да... Но, с другой стороны, ТС хочет вроде как группировку по коду, при этом как должны располагаться сами группы кодов - не говорит.
...
Рейтинг: 0 / 0
11.11.2015, 17:01
    #39100974
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
ughunter,
А так устроит?
Код: c#
1.
2.
3.
4.
            var result = list.OrderBy(n => n.Codes_Id)
                .ThenByDescending(n => n.MainOrganization)
                .ThenByDescending(n => n.MainInRegion)
                .ThenBy(n => n.Title).ToList();
...
Рейтинг: 0 / 0
11.11.2015, 17:06
    #39100981
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
AxeleronА так устроит?ughunterзапись с полем MainOrganiszation = 1 всегда первая
...
Рейтинг: 0 / 0
11.11.2015, 17:10
    #39100992
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Shocker.ProAxeleronА так устроит?ughunterзапись с полем MainOrganiszation = 1 всегда первая
Блииин, я надеялся, что а вдруг прокатит ;)
...
Рейтинг: 0 / 0
11.11.2015, 17:16
    #39101002
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сочинить запрос
Shocker.ProughunterShocker.Pro,
74 - не сгруппировалсяне может быть, показывай получившийся запрос.

сыплю голову пеплом! Действительно не может быть (пропустил .ThenBy(n => n.CodesId)).

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


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