【发布时间】:2016-12-17 23:50:34
【问题描述】:
我有这个约会,但我必须输入星期几。
select `a`.`aplicativo` AS `PROGRAMA`,
sum((cast(`r`.`created_at` as date) = curdate())) AS `HOJE`,
sum((cast(`r`.`created_at` as date) = (curdate() - 1))) AS `ONTEM`,
sum((cast(`r`.`created_at` as date) = (curdate() - 2))) AS `2_DIAS`
from (`registration` `r`
join `aplicativos` `a` on ((`r`.`app_id` = `a`.`id`)))
group by `r`.`app_id`
我已经尝试使用以下命令给出错误。
sum((cast(`r`.`created_at` as date) = (curdate() - 1))) AS DATE_FORMAT(curdate(),'%a %e')
我希望在 sum 的每一列中都出现
Sunday | Monday | Tuesday | Wednesday
65 54 99 100
它无法修复,因为每一天都会改变。 今天是星期天,将出现星期六、星期五的日期...... 但是明天是星期一,那么它应该出现:星期日,星期六....
明天会有如下结果
Monday | Tuesday | Wednesday | Thursday
54 99 100 85
【问题讨论】:
-
除非存储过程,否则您不能在查询中直接在列别名上运行函数。还可以考虑使用 PHP、Python 或 R 等应用程序代码来动态创建具有所需列别名的 SQL 语句。
-
请编辑您的问题并提供示例数据和所需的结果。
-
嗨,@Gordon Linoff,你能帮我解决这个问题吗?我已经用我需要的结果编辑了我的问题
-
@Parfait,我需要直接在查询中执行此操作,因为我的报告在 Mysql 中很简单,我不使用 php、python 等...
-
@William。 . . SQL 结果集具有一组具有固定名称且顺序固定的列。您只能使用动态 SQL 做您想做的事。