0
*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

这就是我的数据表返回的内容。我需要选择c_INPUTMODE='C'字符串变量上的最大更改日期

请帮忙

4

2 回答 2

3

您可以为此目的使用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();

如果您的 ColumnC_INPUTMODEchar类型,那么您的 where 子句应该是:

.Where(r=> r.Field<char>("C_INPUTMODE") == 'C')
于 2013-04-30T05:01:31.913 回答
0
SELECT dt.* 
FROM 
dt, 
( SELECT max(dt_alterdate) 
  FROM dt 
  where c_inputmode='C') 
AS maxdate 

WHERE maxdate.vc_devid=dt.vc_devid
于 2013-04-30T05:06:29.763 回答