|
LINQ запрос на max и min
|
|||
---|---|---|---|
#18+
Имеется таблица 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, то делает выборку нормально). как это победить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2012, 18:30 |
|
|
start [/forum/topic.php?fid=17&fpage=35&tid=1350379]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
2ms |
others: | 307ms |
total: | 417ms |
0 / 0 |