ORACLE 查询语句
一学生考勤表TBLSTU,有字段SNAME(nvarchar2)为学生名,DATETIME(date)为日期,当天学生有到就插入当天的值和姓名,如何通过语句查询2010年...
一学生考勤表TBLSTU,有字段SNAME(nvarchar2)为学生名,DATETIME(date)为日期,当天学生有到就插入当天的值和姓名,如何通过语句查询2010年到2011年没到的学生记录。
展开
3个回答
展开全部
建立一个时间table。可以是临时table,每次run report的时候运行产生。也可以建立永久table.
方法一:解决模式,建立时间table,存储考勤的时间。经过比对哪些学生在需要出勤的时候没有来考勤。
方法二:根据现有的学生考勤表提取哪些时间是需要考勤的。
select trunc(datetime)
from TBLSTU
group by trunc(datetime)
这种方式会有bug,如果全部学生都不来,就造成提取不到考勤时间。
方法一:解决模式,建立时间table,存储考勤的时间。经过比对哪些学生在需要出勤的时候没有来考勤。
方法二:根据现有的学生考勤表提取哪些时间是需要考勤的。
select trunc(datetime)
from TBLSTU
group by trunc(datetime)
这种方式会有bug,如果全部学生都不来,就造成提取不到考勤时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
缺少没到的判断标准,没到=应到-实到,表中记录的都是实到的数据,你没提供应到的数据。所以没法得到缺勤学生信息。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select *
from 学生表
where SNAME not in(select sname from tblstu where to_date(datetime) between to_date('2010-01-01') and to_date('2011-12-31'))
from 学生表
where SNAME not in(select sname from tblstu where to_date(datetime) between to_date('2010-01-01') and to_date('2011-12-31'))
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询