Страница: 1 |
Страница: 1 |
Вопрос: LINQ запрос на max и min
Добавлено: 15.04.12 18:27
Автор вопроса: Zahar | Web-сайт:
Имеется таблица Table, в которой отражены даты начала и окончания работы по договорам подряда работников в фирме. По некоторым причинам некоторые даты начала и окончания работы пока имеют значение Null.
FIO Begin_Date End_Date
Петров Null 16.01.2010
Иванов 14.01.2010 22.01.2010
Захаров 21.01.2010 Null
Иванов 29.05.2010 10.03.2011
Фёдоров 10.10.2010 13.03.2011
Иванов 13.02.2011 Null
Петров 24.11.2011 12.03.2012
Необходимо посредством LINQ-запроса в VB.NET получить список всех работавших лиц с указанием для каждого из них даты начала самого первого контракта и окончания самого последнего контракта. То есть надо получить следующее:
FIO Begin_Date End_Date
Петров 24.11.2011 12.03.2012
Иванов 14.01.2010 10.03.2011
Захаров 21.01.2010 Null
Фёдоров 10.10.2010 13.03.2011
Такой запрос к датасету:
Dim query = From dt In Table _
Group By zz = dt.Field(Of String)("FIO") Into gr = Group _
Select New With { _
.FIO = zz, _
.Begin_Date = gr.Min(Function(min) min.Field(Of DateTime)("Begin_Date")), _
.End_Date = gr.Max(Function(max) max.Field(Of DateTime)("End_Date")) _
}
Выдаёт ошибку на null (Eсли попробовать на таблице без значений null, то делает выборку нормально).
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 16.04.12 09:50
gr.Min и gr.Max попробуй кастануть к Nullable<ateTime>
Номер ответа: 2
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #2
Добавлено: 16.04.12 09:50
к
Номер ответа: 3
Автор ответа:
Zahar
Вопросов: 91
Ответов: 67
Web-сайт:
Профиль | | #3
Добавлено: 17.04.12 00:48
не
gr.Min и gr.Max попробуй кастануть к Nullable<ateTime>
Не могу понять, как это реализовать?
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 17.04.12 09:06
Gугли по CType и DirectCast.
Номер ответа: 5
Автор ответа:
BG(Алексей)
Вопросов: 26
Ответов: 295
Профиль | | #5
Добавлено: 22.04.12 23:00
Попробуй так.