2014-07-23 29 views
0

Screenshot的SQL條目消失,出現,儘管在範圍內

正如截圖看到,7月21日和22日的條目在第一個查詢返回,但在第二個查詢返回,儘管條目在兩者的範圍內。

我知道在其他地方有一些差距,但那是因爲那些日子實際上沒有數據。但7月21日和22日有數據。在一個查詢中,他們被顯示出來,而另一個查詢中他們不是在兩次都在範圍內。在兩種情況下,ownerID都是相同的。

我完全失去了。


cha的評論是正確的。這將是正確的查詢:

SELECT SUM(amount) , `date` 
FROM `yp_corpWalletJournal` 
WHERE ownerID =xxx 
AND refTypeID =85 
AND `date` >= '2014-06-23' 
GROUP BY DATE_FORMAT( `date` , '%Y-%m-%d') 
ORDER BY `yp_corpWalletJournal`.`DATE` DESC 
+0

當你被DAY(日期)分組您從不同月份進行分組在一起的日子,即六月21日和7月21日被分成一個嘗試。你的結果是完全不可預知的 – cha

+0

哦,夥計,沒錯。其中一個腦力激盪時刻。謝謝你! – Hijacker

+0

@Hijacker你可能希望在SELECT中包含相同的DATE_FORMAT('date','%y-%m-%d'),因爲時間並不重要。 –

回答

1

這可能會觸發,因爲只有日期的一部分分組。

使用GROUP BY date,而不是使用GROUP BY DAY(date)

+0

好吧,第二個查詢指定「比6月23日更大」,所以6月21日和6月22日的參賽作品自然會消失。 僅按日期分組將導致6000行,因爲日期字段包含時間。在這種情況下,它基本上不會使用GROUP BY。 – Hijacker

+0

@Mariano是正確的,因爲GROUP BY DAY(日期)是問題 - 因爲這只是返回該月的一天。在SELECT中返回的'date'只是該組內的一個任意日期 - 即可能是從六月或七月開始。 –