2009-06-22 4 views
0

je pense que le titre est un peu cryptique, voici ce que je veux faire ...requête Linq sur la valeur maximale de 2 champs

j'ai dans mes Tabel deux champs datetime. Maintenant, je veux sélectionner les lignes où la plus grande (la plus loin dans l'avenir) La date est plus grand que « aujourd'hui »

few examples: (today is 6-22) 
date1: null, date2: null : no match, all lower than now 
date1: null, date2: 5-31: no match, all lower than now 
date1: null, date2: 6-23: match, 6-23 is larger than now 
date1: 5-31, date2: 7-23: match, 6-23 is larger than now 
date1: 7-21, date2: 1-23: match, 7-21 is larger than now 
date1: 7-21, date2: null: match, 7-21 is larger than now 

donc dans une sorte de code pseudo:

select * from table où (max (date2, date2))> maintenant

Cordialement, Michel

+0

Je pense que vous voulez dire sélectionner * de table où (max (date1, date2))> maintenant – RichardOD

+0

c'est correct, c'est ce que je veux dire :) – Michel

Répondre

5

Est-ce ce que vous voulez (je converti SQL):

from row in table 
where (row.Date1 != null && row.Date1 > DateTime.Now) || 
     (row.Date2 != null && row.Date2 > DateTime.Now) 
select row 
+0

si je regarde cela, je vois la requête linq juste en face de moi pense. Juste penser à difficile avec les déclarations Linq parfois. – Michel

Questions connexes