我在做一个考勤的程序,遇到点问题我通过select语句获得了一个datatable 里面有3列 USERID DATE TIME, 每个ID每天打卡若干次,TIME记录每次打卡的时间。我现在希望希望统计每个USERID在每一个DATE中的出勤总时间。奇数次算进,偶数次算出,暂时不考虑漏打卡的。也就是说最终得到一个datatable,也是3列 USERID DATE TOTALATTENDANCE, 其中每个USERID的每个DATE占一行,TOTALATTENDANCE记录当天总共出勤小时数。我才学C#不久,不知道如何对datatable进行操作才能得到我想要的。不知道该如何操作。
大概的路子就是这样,楼主试试吧。
数据库加两个字段Tag,state,在每次进的时候(奇数次)写入数据库之前,生成一个自动增加的数值,加入Tag,state=1,出的时候Tag也是该值,state=0,下次进的时候,Tag值加1.
那么可以用这个查询 select USERID,DATE,tag,(SELECT TOP 1 time FROM table AS b WHERE b.tag = a.tag AND b.state = 0) -(SELECT TOP 1 time FROM table AS c WHERE c.tag = a.tag AND c.state = 1) AS Expr1
from table as a
group by userid,date,tag
这是我的问题。
用找个可以计算
DataTable mydt ;
mydt=FillMyData();//填充你的数据到mydt 里
int count=mydt.Select("Userid="+ +" and Date ="+).length ;
if count%2=0
...
else
...