Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算SQL Server中的学生缺勤率_C#_Sql_Sql Server_Database - Fatal编程技术网

C# 计算SQL Server中的学生缺勤率

C# 计算SQL Server中的学生缺勤率,c#,sql,sql-server,database,C#,Sql,Sql Server,Database,我正在更新一份学校申请表,在该申请表中,我希望根据学生的ID和选定的时间段计算任何学生的缺勤率。我在Sql Server中有一个名为CHECKINOUT的表,用于保存学生的数据。现在,我想计算任何学生的缺勤率。当有人进入学校时,在该表中输入以下字段 [USERID] ,[CHECKTIME] ,[CHECKTYPE] 这是CHECKINOUT表中数据的屏幕截图 现在假设我有身份证10,我想计算上个月学生的缺勤情况,我在查询中感到困惑。请在这方面帮助我我们正在研究它,不确定这是否是最

我正在更新一份学校申请表,在该申请表中,我希望根据学生的ID和选定的时间段计算任何学生的缺勤率。我在Sql Server中有一个名为CHECKINOUT的表,用于保存学生的数据。现在,我想计算任何学生的缺勤率。当有人进入学校时,在该表中输入以下字段

 [USERID]
  ,[CHECKTIME]
  ,[CHECKTYPE]
这是CHECKINOUT表中数据的屏幕截图


现在假设我有身份证10,我想计算上个月学生的缺勤情况,我在查询中感到困惑。请在这方面帮助我

我们正在研究它,不确定这是否是最简单的,但它可以工作,我已经测试过了

select missDates.userid, checkinout.userid, dt from
checkinout right join  
(select * from (
    SELECT  DATEADD(DAY, nbr - 1, @StartDate) dt
      FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr
                  FROM      sys.columns c
              ) nbrs
     WHERE   nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)) alldates 
     cross join (select distinct userid from checkinout) t2) missDates
         on missdates.userid = checkinout.userid 
         and convert(date,checktime) = convert(date,dt)
 where  checkinout.userid is null

你能添加样本数据和预期结果吗?我已经更新了我的问题@Prdp,我想知道学生缺席的次数,如CountExpression,除非他们预计每天都在学校。你需要一个表格,显示他们预计在学校的天数。这可以是一张学校上课日期表或学生上课时间表,以表明何时应记录缺课情况。否则,任何人在这里提出的查询都会将周末和假期以及他们应该在课堂上的任何日子标记为缺席。如果您没有确切告诉我们您想要的结果,我们无法帮助您,也请检查该列的含义checktype@billpennock假期不是问题,在这里,我只想知道在从字符串转换日期和/或时间时,codeConversion失败的天数序列中,学生在所选日期中无法访问@Stuart ainsworth的次数。为什么会出现此错误?在哪里指定缺席者正在查找的已用id?在我的测试checktime中是一个datetime字段。出于某种原因,您的字段是字符字段吗?如果是这样,您需要在数据或过程中转换它,以获取特定用户的位置,请尝试添加和错误日期。userid=您想要的用户