週數據會有weekbegin和weekend兩個字段,用來描述周的開始日期和結束日期。sql
如今項目中的日曆控件不支持周查詢,只支持日期查詢,因此目前面臨的問題是,根據時間範圍,查詢周。ui
最終sql以下:code
select uid,weekbegin,weekend,sum(activeCount),sum(newCount) from rv_Cloud_SummaryWeek where (date(weekbegin)>=date('2018-05-01') and date(weekbegin)<='2018-05-31') or (date(weekend)>=date('2018-05-01')
and date(weekend)<=date('2018-05-31')) or (date(weekbegin)<=('2018-05-01') and date(weekend)>=date('2018-05-31')) group by uid,weekbegin,weekend
使用的窮舉法作的處理,即羅列出全部的狀況進行or查詢。blog
簡單說一下邏輯思考過程:class
周開始時間結束時間的字段是weekbegin,weekenddate
頁面查詢的時間範圍是begindate和enddateselect
那麼根據這四個時間字段的順序多是:數據
weekbegin weekend begindate enddate項目
1 2 3 4查詢
1 3 2 4
1 4 2 3
2 3 1 4
3 4 1 2
最終得出以上SQL