我有以下查询:
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
这成功地返回了我的CD表'销售'中销售增加/减少的百分比。但是我希望改为代码,而不是列出2011年7月对2012年7月的具体日期,而是去年7月,而去年7月。我知道现在运行这个新查询会得到相同的结果,但是我希望如果你在100年后进行这个查询,那么查询将测试2111年7月对2112年7月。
我自己试图这样做,但是当我运行代码时我的答案是NULL。不应该是这种情况,这里有以下新代码(即使它不正确):
SELECT SUM(purchasedate = YEAR(CURDATE() AND MONTH(purchasedate) = 7))
/ SUM(purchasedate = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR) AND MONTH(purchasedate) = 7))
FROM Sales
其次,如果有新CD的新艺术家,则会将其除以0,并且不会将其包含在结果中,例如2011年7月为0和2012年7月398,显然这应该包括在我的结果中。
答案 0 :(得分:1)
尝试比较格式化的日期字符串,如下所示:
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