2013-01-11 68 views
1

我有以下查詢獲取年份,從和到日期之間的總和數據。
它完美的作品。獲取從當日起至當天的年份數據

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-07-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',Date)='2012'

我不知道如何解決這個問題或者如何去解決上述問題。
請幫我解決它或任何替代。提前致謝。

+1

如果你想把所有的交易,那麼你需要刪除'GROUP BY'如果你想在該期間的交易記錄的摘要,你需要使用一個聚合函數在選擇。 – GarethD

+0

It Worked.Thanks GarethD。 –

+0

你見過這個帖子http://stackoverflow.com/questions/735911/selecting-date-formats-for-aggregate-calculations-from-database-with-django – bonCodigo

回答

1

你不需要GROUP BY

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

它真的很棒。感謝Valex。 +1 –

+0

不錯,當你明確地說'strftime('%Y',Date)='2012'' – bonCodigo

相關問題