我正在显示每日基础数据。 Say One Human(HumanID)每天早晚吃2次。所以我输入这样的数据。
表:报告
--------------------------------------
ID | HumanID | date | schedule | amount|
--------------------------------------
1 | 101 | 2016-01-01 | morning | 10 |
2 | 101 | 2016-01-01 | evening | 8 |
3 | 102 | 2016-01-01 | morning | 11 |
4 | 102 | 2016-01-01 | evening | 9 |
5 | 103 | 2016-01-01 | morning | 8 |
6 | 103 | 2016-01-01 | evening | 7 |
查询结果将是: 我希望这样显示
---------------------------------------
HumanID | date | morning | evening |
---------------------------------------
101 | 2016-01-01 | 10 | 8 |
102 | 2016-01-01 | 11 | 9 |
103 | 2016-01-01 | 8 | 7 |
答案 0 :(得分:1)
这是一个透视查询。在MySQL中,您可以使用条件聚合执行此操作:
select id, date,
max(case when schedule = 'morning' then amount end) as morning,
max(case when schedule = 'evening' then amount end) as evening
from t
group by id, date;