Mysql 获取起始日期和截止日期内的年度数据
我有以下查询,它获取从开始到结束的年份和数据。Mysql 获取起始日期和截止日期内的年度数据,mysql,sql,sqlite,Mysql,Sql,Sqlite,我有以下查询,它获取从开始到结束的年份和数据。 它工作得很好 SELECT strftime('%Y',Date), SUM(Amount) from table where (Date between '2008-08-01' and '2012-07-31') GROUP BY strftime('%Y',Date) 我正在条形图上显示总和。 现在,如果我点击相应的年份,它应该显示该年份“截止日期”之前的所有交易,或者如果该值小于“截止日期”,则显示整个年份的交易 例如:在上面的示例
它工作得很好
SELECT strftime('%Y',Date), SUM(Amount)
from table where (Date between '2008-08-01' and '2012-07-31')
GROUP BY strftime('%Y',Date)
我正在条形图上显示总和。现在,如果我点击相应的年份,它应该显示该年份“截止日期”之前的所有交易,或者如果该值小于“截止日期”,则显示整个年份的交易 例如:在上面的示例中,它显示从日期:2008-08-01到日期:2012-07-31的总和 如果用户点击2012年条形栏栏,则应显示截至2012年7月31日的交易,而不是全年的交易,但如果用户点击2011年,则应显示全年的交易,因为截止日期大于2011年 与2008年相同,它应该显示“2008-08-01”的数据,而不是全年的数据,如果我点击该年的条形栏,它应该显示从该特定日期到年底的交易,而不是全年的交易 下面的查询返回了错误的值
SELECT strftime('%Y',Date) ,*
from table where (Date between '2011-08-01' and '2012-07-31')
and strftime('%Y',Date)='2012'
GROUP BY strftime('%Y',Date)
这只返回日期为2012-01-01的一行,而不是2012年至2012-07-31的所有值
基本上我只想在下面的查询中更改年份,其余的应该是相同的。strftime(“%Y”,日期)=“2012”
根据上述要求,我不知道如何修理或如何操作。请帮我修复它或任何其他选择。提前感谢。您不需要
分组方式
SELECT strftime('%Y',Date) ,*
from table where (Date between '2011-08-01' and '2012-07-31')
and strftime('%Y',Date)='2012'
您不需要
分组依据
SELECT strftime('%Y',Date) ,*
from table where (Date between '2011-08-01' and '2012-07-31')
and strftime('%Y',Date)='2012'
如果你想要所有的交易,那么你需要删除
分组依据
如果你想要该期间的交易摘要,你需要在select中使用一个聚合函数。它起作用了。谢谢GarethD。你看过这篇文章吗@bonCodigo谢谢bonCodigo。但是下面的解决方案起作用了。如果你想要所有的交易,那么你需要要删除分组依据
,如果您想要该期间的交易摘要,您需要在select中使用聚合函数。它起作用了。谢谢GarethD。您看过@bonCodigo感谢bonCodigo的这篇文章了吗。但是下面的解决方案起作用了。很好,当您明确地说strftime(“%Y”,Date)='2012'
Nice,当您明确表示strftime(“%Y”,Date)=“2012”