2009-06-22 2 views
0

Ich denke, der Titel ein wenig kryptisch ist, hier ist was ich tun will ...Linq-Abfrage auf den Maximalwert von 2 Feldern

ich habe in meinem Tabel zwei Datetime-Felder. Jetzt möchte ich die Zeilen auszuwählen, in dem die größte (dh der am weitesten in der Zukunft) Datum ist größer als 'heute'

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 

so in eine Art Pseudo-Code:

select * from table where (max (date2, date2))> jetzt

Grüße, Michel

+0

Ich denke, du meinst wählen * aus Tabelle wo (max (date1, date2))> jetzt – RichardOD

+0

das ist richtig, das ist was ich meine :) – Michel

Antwort

5

Ist das, was Sie wollen (I konvertiert Ihre SQL):

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

wenn ich mir das anschaue, sehe ich die linq query direkt vor mir ich denken. Nur zu schwer mit den Linq Aussagen manchmal zu denken. – Michel

Verwandte Themen