MySQL 中的枢轴 Table 未正确返回

Pivot Table in MySQL not returning correctly

我知道这个问题已经被问过几次了,我正在尝试完全按照接受的答案去做,但显然我做错了什么,无法得到想要的输出。

我想要return以下格式的数据:

姓名 | 27-06-2015 | 28-06-2015

===== | ========== | ==========

约翰 | 6:30AM | 7:30上午

史蒂夫 | 6:00上午 | 4:00上午

++++++++++++++++++++++++++++++++++++++

但是当我 运行 Fiddle 查询时,我没有得到任何第二天的出勤数据 table。如果我删除分组,我会得到第二天的数据,但会在结果集中插入一个新行:

姓名 | 27-06-2015 | 28-06-2015

===== | ========== | ==========

约翰 | 6:30AM |空

约翰 |空 | 7:30上午

史蒂夫 | 6:00上午 |空

史蒂夫 |空 | 4:00上午

++++++++++++++++++++++++++++++++++

我用的sql是:

SELECT 
 Name,
 case(dropoffdate) when '20150627' then CONCAT(DropoffTime, ' - ', PickupTime) end as '2015-06-27',
 case (DropoffDate) when '20150628' then CONCAT(DropoffTime, ' - ', PickupTime) end as '2015-06-28'
 FROM
 Student s
 LEFT OUTER JOIN Attendance a on s.id = a.student 
 GROUP BY s.id

这里是fiddle link

您必须根据需要使用 MAXMIN 组函数,以获取有效记录。

SELECT 
       Name,
       MAX( case(dropoffdate) 
                 when '20150627' 
                      then CONCAT(DropoffTime, ' - ', PickupTime) 
            end ) as '2015-06-27',
       MAX( case (DropoffDate) 
                 when '20150628' 
                      then CONCAT(DropoffTime, ' - ', PickupTime) 
            end ) as '2015-06-28'
 FROM Student s
 LEFT OUTER JOIN Attendance a on s.id = a.student 
 GROUP BY s.id