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

これが私のDatatableの戻り値です..c_INPUTMODE='C'文字列変数の最大のalterdateを選択する必要があります

助けてください

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();

C_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 に答える