2010-05-12 4 views
0

J'ai une table qui est quelque chose comme ci-dessous ..SQL et LINQ to SQL Aide

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 

....

Maintenant, je dois écrire une requête qui affiche une sortie comme ci-dessous .

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

...

Comment puis-je faire .. Toute aide serait très apprécié Merci d'avance Johnny

Répondre

0

Cela pourrait être ce que vous cherchez:

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

j'envisager de modifier la variable projection lambda à autre chose que j'éviter toute confusion. 'g' par exemple. – Marc

0

je ne suis pas un expert dans ce mais vous peut essayer le code suivant

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

J'espère que ça marche pour toi!!

prendre soin