2010-05-12 4 views
0

У меня есть таблица, в которой некоторые вещи, как показано ниже ..SQL и Linq To SQL Помощь

Date    ID 

2009-07-01   1 
2009-07-01   2 
2009-07-01   3 
2009-08-01   4 
2009-08-01   5 
2009-08-01   6 
2009-09-01   7 
2009-09-01   8 
2009-10-01   9 
2009-10-01   10 
2009-11-01   11 

....

Теперь мне нужно написать запрос, который будет показывать выход, как показано ниже ,

Date    Start   End 
2009-07    1    3 
2009-08    4    6 
2009-09    7    8 

...

Как я могу это сделать .. Любая помощь будет высоко оценен Поблагодарив заранее Джонни

ответ

0

Это может быть то, что вы ищете:

var a = from myObj in db.MyObjs 
     group myObj by myObj.Date.ToString("yyyy-mm") 
      into ymGroup 
      select new { Date = ymGroup.Key, Start = ymGroup.Min(c => c.ID), End = ymGroup.Max(c => c.ID) }; 
3
tableData.GroupBy(i => i.Date).Select(i => new 
      { 
       DateTime = i.Key, 
       Start = i.Min(j => j.ID), 
       End = i.Max(j => j.ID) 
      }); 
+0

Я бы рассмотреть вопрос об изменении переменной проекции лямбда на что-то другое, чем я, чтобы избежать путаницы. например, «g». – Marc

0

я не являюсь экспертом в этом, но вам можно попробовать следующий код:

var yourRows = _entities.YourTable.Where(colid => ((colid.Id == 3) || (colid.Id == 6) || (colid.Id == 8))); 
return View(yourRows); 

надеюсь, что это сработает для вас!

позаботятся