在查询中从静态日期更改为更改日期&;聚合函数的问题-MYSQL
我有以下疑问:在查询中从静态日期更改为更改日期&;聚合函数的问题-MYSQL,mysql,database,aggregate-functions,Mysql,Database,Aggregate Functions,我有以下疑问: SELECT Artist_no, SUM(purchasedate BETWEEN '2012-07-01' AND '2012-07-31') / SUM(purchasedate BETWEEN '2011-07-01' AND '2011-07-31') FROM Sales SELECT SUM(date_format(purchasedate, '%m-%Y') = CONCAT('07-',YEAR(CURDATE())
SELECT Artist_no, SUM(purchasedate BETWEEN '2012-07-01' AND '2012-07-31') /
SUM(purchasedate BETWEEN '2011-07-01' AND '2011-07-31')
FROM Sales
SELECT SUM(date_format(purchasedate, '%m-%Y') = CONCAT('07-',YEAR(CURDATE()))
/ SUM(date_format(purchasedate, '%m-%Y') =
CONCAT('07-',YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
FROM Sales
这将成功地返回我的CD“sales”表中销售额增加/减少的百分比。然而,我希望将代码改为列出2011年7月与2012年7月的具体日期,改为今年7月与去年7月的具体日期。我知道现在运行这个新查询将获得相同的结果,但是我希望如果您在100年后执行此查询,那么查询将针对2111年7月和2112年7月进行测试
SELECT SUM(date_format(purchasedate, '%m-%Y') = CONCAT('07-',YEAR(CURDATE()))
/ SUM(date_format(purchasedate, '%m-%Y') =
CONCAT('07-',YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
FROM Sales
我自己也尝试过这样做,但是当我运行代码时,我的答案是空的。不应该是这样的,下面是新代码(尽管它不正确):
SELECT SUM(date_format(purchasedate, '%m-%Y') = CONCAT('07-',YEAR(CURDATE()))
/ SUM(date_format(purchasedate, '%m-%Y') =
CONCAT('07-',YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
FROM Sales
其次,如果有一个新的艺术家有一张新的CD,它将除以0,不包括在结果中,但是2011年7月为0,2012年7月398,例如,显然这应该包括在我的结果中。尝试比较格式化的日期字符串,如下所示:
SELECT SUM(date_format(purchasedate, '%m-%Y') = CONCAT('07-',YEAR(CURDATE()))
/ SUM(date_format(purchasedate, '%m-%Y') =
CONCAT('07-',YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
FROM Sales