1
我有一個SQL query..My問題一個問題的列表之間是我有日期的列表,如:如何選擇日期[不]範圍
- 2015年6月23日
- 2015年6月24日
- 2015年6月25日
- 2015年6月26日
- 2015年6月27日
- 2015年6月28日
在名爲「days」的表中。
我有另一個表「過濾器」,其中包含的範圍在兩列的列表:
start | end
--------+---------
2015-06-24 | 2015-06-24
2015-06-26 | 2015-06-27
... | ...
我試圖讓,結果是:
- 2015-06- 23
- 2015年6月25日
- 2015年6月28日
即不在這些範圍內的日期。
我嘗試這樣做:
SELECT day.date
FROM days, filter
WHERE days.date not between filter.start and filter.end_time
group by day.date
我認爲這代碼可能做的伎倆,但它似乎它的工作原理,只有當有一個排的過濾器table..In我的案件的範圍內,人數不詳在開始時。
我還注意到,刪除「group by」子句時,結果是一個重複日期列表,每個日期出現一次,每個過濾器驗證一次。即在這裏:
- 2X 2015年6月23日
- 1X 2015年6月24日
- 2X 2015年6月25日
- 1X 2015年6月26日
- 1X 2015-06- 27
- 2X 2015年6月28日
大江解決方案可能是隻選擇達到最大值出現的行,但也有我的SQL限制..加上我沒有確定這將是最有效的方式。
有人可以幫我這個嗎?
非常感謝你,它像一個魅力 – Etienne