2015-04-02 40 views
-1

此查询MySQL的数据透视表 - 行colums

SELECT 
    Student.StudentID, 
    student.`Name`, 
    attendance.Date, 
    CASE 
WHEN attendance.StudentID IS NOT NULL THEN 
    'Present' 
ELSE 
    'Absent' 
END AS Attendance_Status 
FROM 
    student 
LEFT JOIN attendance ON student.StudentID = attendance.StudentID 

给我这个结果

Figure 1

我怎样才能得到类似这样

结果

Figure 2

+0

您是否希望在MySQL或PHP中执行此操作? – Sean 2015-04-02 20:48:01

+0

@Sean我正在构建一个Web应用程序,所以我将在PHP中做这件事 – 2015-04-02 20:49:37

回答

-1

通过这个答案

SELECT student.StudentID,学生解决了。 Name

IF((SELECT DISTINCT 1 FROM出勤WHERE attendance.StudentID = student.StudentID和日期= '2015年9月7日' )= 1, '存在', '缺席')AS 2015-09-07

IF((SELECT DISTINCT 1 FROM出勤WHERE attendance.StudentID = student.StudentID和日期= '2015年9月14日' )= 1, '存在', '缺席')AS 2015-09-14

student.WorkshopID FROM学生

by @Hitesh Mundra

+0

我很抱歉,但是这不能解决您在上面的请求中提出的问题。 – Dresden 2016-06-03 00:45:25