我想用图表显示过去12个月的销售额。sql表有“年”和“月”字段,没有组合的日期字段。我不能给出12个月的时间间隔条件。
SELECT s_month,s_year,SUM(s_amount) FROM table
WHERE s_month >= Date_add(now(),interval - 12 month)
AND s_year >= Date_add(now(),interval - 12 month)
GROUP BY s_year,s_month
我想用图表显示过去12个月的销售额。sql表有“年”和“月”字段,没有组合的日期字段。我不能给出12个月的时间间隔条件。
SELECT s_month,s_year,SUM(s_amount) FROM table
WHERE s_month >= Date_add(now(),interval - 12 month)
AND s_year >= Date_add(now(),interval - 12 month)
GROUP BY s_year,s_month
2条答案
按热度按时间ilmyapht1#
一种方法是:
您可能需要调整日期算法,这取决于您是否想要12个月前的日期。
如果您想在数据中显示最后12个月,可以执行以下操作:
e0bqpujr2#
这是反对将日期部分(月、年)存储在单独的列中的有力论据。
这个
WHERE
你的条款没有达到你的期望!事实上,拥有一个
DATE
列(或TIMESTAMP
或者DATETIME
)并根据需要使用日期函数将其拆分。您的查询还有一个问题。
SUM(amount)
两头都有一个月的时间。如果不更好地理解数据的来源和时间,我无法为您解决这个问题。如果它已经是一个月的第一个存储的单一读数,那么没有问题。如果是每日或每小时的金额,那么我的观点是正确的。