从日期到日期获取年份数据

时间:2013-01-11 10:24:19

标签: mysql sql sqlite

我有以下查询获取年份,来自和迄今为止的Sum数据 它运作得很好。

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

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

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

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

我不知道如何解决它或如何解决上述要求 请帮我解决它或任何替代方案。在此先感谢。

1 个答案:

答案 0 :(得分:1)

您不需要GROUP BY

SELECT strftime('%Y',Date) ,* 
from table where (Date between '2011-08-01' and '2012-07-31') 
                 and strftime('%Y',Date)='2012'