选择MAX-日期条件
*VC_DEVID* *DT_LODDATE* *C_INPUTMODE* *DT_ALTERDATE*
DEVC109 29/Apr/2013 12:50:29 R 30/Apr/2013 12:50:29
DEVC110 29/Apr/2013 12:50:29 M 29/Apr/2013 12:50:29
DEVC111 29/Apr/2013 12:50:29 M 28/Apr/2013 12:50:29
DEVC112 29/Apr/2013 12:50:29 M 27/Apr/2013 12:50:29
DEVC109 29/Apr/2013 12:50:29 R 26/Apr/2013 12:50:29
这是在我的DataTable returs .. 我需要选择最大alterdate一个字符串变量,其中c_INPUTMODE='C'
选择MAX-日期条件
请帮助
你可以使用LINQ to DataSet/DataTable用于此目的,如:
DateTime maxDate = dt.AsEnumerable()
.Where(r => r.Field<string>("C_INPUTMODE") == "C")
.Max(r => r.Field<DateTime>("DT_ALTERDATE"));
或者
DateTime maxDate = dt.AsEnumerable()
.Where(r => r.Field<string>("C_INPUTMODE") == "C")
.Select(r => r.Field<DateTime>("DT_ALTERDATE"))
.Max();
如果列C_INPUTMODE
是char
类型的那么你的where子句应该是:
.Where(r=> r.Field<char>("C_INPUTMODE") == 'C')
SELECT dt.*
FROM
dt,
(SELECT max(dt_alterdate)
FROM dt
where c_inputmode='C')
AS maxdate
WHERE maxdate.vc_devid=dt.vc_devid
欢迎使用StackOverflow:如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)语法突出显示 – 2013-04-30 05:08:26
thanx全部都知道它 DataRow [] dRows = dt.Select(“DT_ALTERDATE = MAX(DT_ALTERDATE)and C_INPUTMODE ='R'”); (DataRow dr在dRows中) { objReset.prpDtreset = dr [3] .ToString(); } – 2013-04-30 05:38:43
它显示根据该)上dt.AsEnumerable一个误差(和焦炭 2013-04-30 05:06:31
@ user2305958,检查最新的答案,有错别字,应该是'' –
Habib
2013-04-30 05:07:17
错误依然存在Enumerable()_>显示System.Data.DataTable不包含asEnumerable的定义 – 2013-04-30 05:25:09