MySQLi Group_Concat

时间:2017-01-23 21:38:06

标签: mysql

我正在尝试将表格中的查询格式化为具有左下方日期的矩阵,以及白天4个时段下3个分组值的结果。 表格如下:

dated     |timed   |beforefood|R  |C |I|
2017-01-01|08:16:00|breakfast |7.3|35|7|
2017-01-01|12:10:00|lunch     |5.3|56|9|
2017-01-01|17:17:00|dinner    |6.8|95|6|
2017-01-01|22:12:00|bedtime   |7.9|0 |0| 

2017-01-02|08:33:00|breakfast |5.6|35|6|
2017-01-02|12:04:00|lunch     |6.8|40|7| 
2017-01-02|17:00:00|dinner    |8.6|50|6|
2017-01-02|22:10:00|bedtime   |9.9|0 |0|

2017-01-03|07:33:00|breakfast |6.2|35|6|
2017-01-03|12:00:00|lunch     |7.3|56|8|
2017-01-03|17:51:00|dinner    |6.4|10|5|
2017-01-03|22:57:00|bedtime   |8.4|0 |0|

To be shown as a Matrix
Date        Breakfast   Lunch   Dinner  Bed
2017-01-01  R-C-I       R-C-I   R-C-I   R-C-I
2017-01-02  R-C-I       R-C-I   R-C-I   R-C-I
2017-01-03  R-C-I       R-C-I   R-C-I   R-C-I

在上面的例子中,2017-01-01的日期以正确的顺序出现早餐 - > Beditime 然而,第二和第三部分以正确的顺序出现了RCI组,但是回到前面的睡前时间 - >早餐 所以早餐是在睡觉前,午餐在晚餐下,晚餐是午餐,睡前是早餐

第4行是正确的,第5行和第6行是回到正面,这是连续模式

选择使用的语句

SELECT  `dated` , GROUP_CONCAT( `R` , ' ', `C` , ' ', `I` ) AS Readings
FROM  `My_Test` 
AND `beforefood` =  'breakfast'
OR  `beforefood` =  'lunch'
OR  `beforefood` =  'dinner'
OR  `beforefood` =  'bedtime'
GROUP BY  `dated`

非常感谢任何指导我正确方向的帮助。

0 个答案:

没有答案