出勤表
id | rollno | faculty | date | PresentAbsent
---|---------|---------|------------|--------------
1 | RP1201 | ABC | 12/12/2016 | P
2 | RP1202 | ABC | 12/12/2016 | A
离开表
Lid | rollno | startdate | enddate | full-half-day | time
----|--------|------------|------------|---------------|---------------
1 | RP1201 | 11/12/2016 | 12/12/2016 | fullday | Not applicable
2 | RP1202 | 12/12/2016 | 12/12/2016 | halfday | 10.30-11.30
必填报告
rollno | totallecture | totalpresent | totalabsent | totalleave | withoutLeave% | withLeave%
-------|--------------|--------------|-------------|------------|---------------|-----------
RP1201 | 12 | 6 | 6 | 2 | 50% | 66.66%
从上面的表逻辑开始它工作正常,但表项增加需要更多时间来计算报告。
请帮我更改帮助我执行报告的表格逻辑 在几秒钟内
请欣赏任何其他建议
答案 0 :(得分:2)
Leave
表格中,使用trigger
。每当插入新的假,此触发器将使用Attendance
或PresentAbsent=A
更新FD
的{{1}}表。 HD
和FD
来计算HD
和TotalAbsent
。如果您能够找出报告查询,则此添加将对其进行一些修改。希望我很清楚。如果您有任何疑问,请在评论中告诉我。
答案 1 :(得分:2)
做这样的事情。
创建离开表格,其中包含总休假天数。半天,使用卷号的可以是0.5是外键。 像这样的东西
Lid | rollno | startdate | enddate | full-half-day | time |numberofdays
----|--------|------------|------------|---------------|---------------|------------
1 | RP1201 | 11/12/2016 | 12/12/2016 | fullday | Not applicable|2
2 | RP1202 | 12/12/2016 | 12/12/2016 | halfday | 10.30-11.30 |0.5
在那个查询之后它就像这样(我正在写一个伪代码)。
select sum(days-of-leave) from LeaveTable where rollnumber=rp1001
总缺席和现在这样做。
select count(presentabsent) as absent from attendence
where rollnumber=rp1001 and presentabsent=A