1
這是我的SQL表:幫助
我
d person datetime status description1 description2
----------- -------------------- ----------------------- ---------- --------------- ---------------
1 personA 2010-01-01 20:00:00.000 A desc1 desc2
2 personA 2010-01-01 21:00:00.000 B desc3 desc4
3 personA 2010-01-01 19:00:00.000 A desc5 desc6
4 personB 2010-01-01 20:00:00.000 A desc7 desc8
5 personB 2010-01-01 21:00:00.000 A desc9 desc10
7 personB 2010-01-01 18:00:00.000 NULL desc11 desc12
8 personB 2010-01-02 19:00:00.000 A desc13 desc14
9 personB 2010-01-02 20:00:00.000 A desc15 desc16
我使用實體框架,並嘗試創建一個LINQ查詢,返回的所有數據(所有列)爲最早每個人的狀態不等於'空'的日期時間值。對於當前的數據集,它應該返回行的ID(3,4,8)
的SQL查詢將是這樣的:
SELECT A.*
FROM MyTable A
INNER JOIN (SELECT person, Min([datetime]) as mindate
FROM MyTable
WHERE [status] is not null
GROUP BY person, convert(date, [datetime])) B
on A.person = B.person
and A.datetime = B.mindate
如何表達這種在LINQ?除了查詢作爲一個整體以外,我努力應對日期時間列允許空值(未在示例數據集中顯示)的事實。這使得enityframework創建了一個可爲空的DateTime類型的屬性?這進一步使我的LINQ查詢更加複雜。
在此先感謝!