Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在查询中从静态日期更改为更改日期&;聚合函数的问题-MYSQL_Mysql_Database_Aggregate Functions - Fatal编程技术网

在查询中从静态日期更改为更改日期&;聚合函数的问题-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