1

我有以下查询,它获取年份和日期之间的总和数据。
它完美地工作。

SELECT strftime('%Y',Date), SUM(Amount) 
from table where  (Date between '2008-08-01' and '2012-07-31') 
GROUP BY strftime('%Y',Date)

我在条形图上显示总和。
现在,如果我单击相应的年份,它应该显示该年“迄今为止”的所有交易,或者如果该值小于“迄今为止”,则显示全年的交易。

例如:在上面的示例中,它显示 Sum From Date : 2008-08-01 和 To Date: 2012-07-31 。

如果用户点击 2012 年栏列,它应该显示截至日期 2012-07-31 的交易,而不是全年,但如果用户点击 2011,它应该显示全年交易,因为 TO Date 大于 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'

我不知道如何解决它或如何解决上述要求。
请帮我修复它或任何替代方案。提前致谢。

4

1 回答 1

1

你不需要GROUP BY

SELECT strftime('%Y',Date) ,* 
from table where (Date between '2011-08-01' and '2012-07-31') 
                 and strftime('%Y',Date)='2012' 
于 2013-01-11T10:45:13.753 回答