首先,要明确;有一个这样的例子:
我可以通过这个查询获得课程:
$qb ->select("c") ->from("ATLReservationBundle:Course","c") ->where("WEEK(c.courseDate,1) = WEEK(CURRENT_DATE(),1)") ->orderBy("c.courseDate","ASC");
QueryResult中:
{ "courses": [ { "id": 110,"name": "Pilates","quota": 8,"course_date": "2015-08-31T12:15:00+0000","studio": { "id": 2,"name": "Stüdyo 2" },"trainer": { "id": 1,"name": "-" } },{ "id": 135,"name": "Spinning","course_date": "2015-08-31T19:30:00+0000",{ "id": 154,"name": "Kick Box","quota": 6,"course_date": "2015-08-31T20:00:00+0000","studio": { "id": 1,"name": "Stüdyo 1" },{ "id": 133,"course_date": "2015-09-01T12:15:00+0000",{ "id": 113,"name": "Crunch 30 Min.","course_date": "2015-09-01T18:30:00+0000",{ "id": 112,"course_date": "2015-09-01T19:00:00+0000",{ "id": 150,"course_date": "2015-09-01T19:30:00+0000",{ "id": 136,"name": "TRX Group","quota": 5,"course_date": "2015-09-01T20:00:00+0000",{ "id": 159,"course_date": "2015-09-02T10:00:00+0000",{ "id": 156,"name": "Stretching","quota": 7,"course_date": "2015-09-02T18:30:00+0000",{ "id": 127,"name": "Zumba","course_date": "2015-09-02T19:00:00+0000",{ "id": 148,"course_date": "2015-09-02T20:00:00+0000",{ "id": 138,"course_date": "2015-09-03T12:15:00+0000",{ "id": 121,"course_date": "2015-09-03T19:00:00+0000",{ "id": 117,"name": "TRX","course_date": "2015-09-03T20:00:00+0000",{ "id": 131,{ "id": 142,"course_date": "2015-09-04T12:15:00+0000",{ "id": 147,"name": "LBT 30 min.","course_date": "2015-09-04T19:00:00+0000",{ "id": 141,"course_date": "2015-09-04T19:30:00+0000",{ "id": 130,"course_date": "2015-09-05T14:00:00+0000","name": "-" } } ] }
但我想将这些数据分组为;
DAY - 31 HOUR - 12:15 > Coursename HOUR - 19:30 > Coursename DAY - 01 HOUR - 10:00...
我不知道怎么做,有人吗?
UPDATE
新查询:
$qb ->select("c,HOUR(c.courseDate) as hour,DAY(c.courseDate) as day") ->from("ATLReservationBundle:Course","c") ->where("WEEK(c.courseDate,1)") ->orderBy("c.courseDate","ASC") ->groupBy("hour,day");
但;这个查询有问题我不能按小时(c.courseDate),DAY(c.courseDate)分组,因为我收到了这个错误:
Error: Cannot group by undefined identification or result variable.
因此,我将时间和日期定义为选择区域中的变量.
我不希望将日和小时视为不同的变量.
QueryResult中:
{ "courses": [ { "0": { "id": 110,"studio": { "id": 2,"name": "Stüdyo 2" },"trainer": { "id": 1,"name": "-" } },"hour": "12","day": "31" },{ "0": { "id": 135,"hour": "19",{ "0": { "id": 154,"studio": { "id": 1,"name": "Stüdyo 1" },"hour": "20",{ "0": { "id": 133,"day": "1" },{ "0": { "id": 113,"hour": "18",{ "0": { "id": 112,{ "0": { "id": 136,{ "0": { "id": 159,"hour": "10","day": "2" },{ "0": { "id": 156,{ "0": { "id": 127,{ "0": { "id": 148,{ "0": { "id": 138,"day": "3" },{ "0": { "id": 121,{ "0": { "id": 117,{ "0": { "id": 142,"day": "4" },{ "0": { "id": 141,{ "0": { "id": 130,"hour": "14","day": "5" } ] }
我想我现在很接近.但它一定是这样的;
DAY HOUR HOUR DAY HOUR HOUR
解决方法
要获取可视化示例表,请使用:
WEEKDAY(date)
Returns the weekday index for date (0 = Monday,1 = Tuesday,… 6 =
Sunday
select hour(date),-- group by hour case when weekday(date)=0 then course_name else null end as Monday,-- 1 col for each weekday ..... case when weekday(date)=6 then course_name else null end as Sunday from table where -- select a monday to sunday calendar week unique by year date(date) - interval weekday(date)=date(curdate()) - interval weekday(curdate()) group by hour(date)
要获得您提到的其他变体:
select right(date,2),-- day of month,hour(date) --hour,course_name from table group by 1,2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。