我想将数据拆分为多个列并更改列名,并根据学生出勤的拆分数据创建百分比。 现在我在db中的表被打了......
----------------------------------------------------
StudentID | 11-4-2014 |12-4-2014|13-4-2014|14-4-2014
----------------------------------------------------
1 AA AP PP PA
----------------------------------------------------
2 PP AA PP AP
----------------------------------------------------
这里A代表缺席,P代表现在。该AA用于Forenoon出勤和下午出勤。我们需要像这样分开..
根据日期和学生显示出勤率 在这里我使用了studentid作为1和11-4-2014
StudentID | Forenoon | Afternoon | Percentage
---------------------------------------------
1 A A 0%
--------------------------------------------
2 P P 100%
-------------------------------------------
它应该基于......到...日期。 如果从2014年4月11日到2014年4月13日,我们需要根据日期计算百分比。
提前致谢..
答案 0 :(得分:0)
要回答您的问题,请参阅下面的
CREATE TABLE student (studentid INTEGER , attendanceDate VARCHAR(20));
我创建了一个表并在表
中的数据下面插入studentid attendanceDate
--------- --------------
1 AA
2 AP
3 PA
4 PP
如果您将运行以下查询,您将获得所需的输出
SELECT T.studentid ,T.foreNoon,T.afterNoon, IF(T.forenoon=T.afternoon && T.forenoon ='A', '100%' ,
IF(T.forenoon=T.afternoon && T.forenoon ='P' , '0%' ,'50%')) AS percentage
FROM (
SELECT studentid, SUBSTRING(attendanceDate,1,1) AS foreNoon,SUBSTRING(attendanceDate,2,1) AS afterNoon FROM student )T
如果您运行上述查询,您将获得如下所示的输出
studentid foreNoon afterNoon percentage
--------- -------- --------- ----------
1 A A 100%
2 A P 50%
3 P A 50%
4 P P 0%
使用MYSQL的substring方法将解决问题