【发布时间】:2012-12-25 21:55:03
【问题描述】:
我有以下查询,它获取年份,从和到日期之间的总和数据。
效果很好。
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',Date)='2012'
我不知道如何解决它或如何解决上述要求。
请帮我修复它或任何替代方案。提前致谢。
【问题讨论】:
-
如果您想要所有交易,那么您需要删除
GROUP BY,如果您想要该时期的交易摘要,您需要在选择中使用聚合函数。 -
成功了。谢谢 GarethD。
-
@bonCodigo 谢谢 bonCodigo。但下面的解决方案奏效了。