是否可以使用函数或变量作为MySQL中列的标签?
例如,如果您想要包含日期,例如:
select
sum(P.AMOUNT) AS monthname(date_sub(CURDATE(), INTERVAL 1 MONTH))
from
PAYMENT P
WHERE
P.CREATED_DATE > (date_sub(CURDATE(), INTERVAL 1 MONTH));
这失败了,因为它不是AS别名的正确语法。我也试过这个:
SET @s = monthname(date_sub(CURDATE(), INTERVAL 1 MONTH));
select
sum(P.AMOUNT) AS @s
from
PAYMENT P
WHERE
P.CREATED_DATE > (date_sub(CURDATE(), INTERVAL 1 MONTH));
哪个也不起作用......
有什么想法吗?
编辑 - 通过上面的例子,我意识到你实际上只能使用一个额外的列来返回日期信息。问题是我有几个具有不同日期范围的列,如下所示:
select
sum(IF((P.CREATED_DATE BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 MONTH) and DATE_SUB(CURDATE(), INTERVAL 0 MONTH)),P.amount,0)) AS 'Month 0',
sum(IF((P.CREATED_DATE BETWEEN DATE_SUB(CURDATE(), INTERVAL 2 MONTH) and DATE_SUB(CURDATE(), INTERVAL 1 MONTH)),P.amount,0)) AS 'Month -1',
sum(IF((P.CREATED_DATE BETWEEN DATE_SUB(CURDATE(), INTERVAL 3 MONTH) and DATE_SUB(CURDATE(), INTERVAL 2 MONTH)),P.amount,0)) AS 'Month -2'
from
PAYMENT P
WHERE
P.AMOUNT < 100000;
所以&#34;第0个月&#34;等我希望用功能/查询替换。