次の表を検討してくださいdaterange
_date trading_day
------------------------
2011-08-01 1
2011-07-31 0
2011-07-30 0
2011-07-29 1
2011-07-28 1
2011-07-27 1
2011-07-26 1
2011-07-25 1
2011-07-24 0
2011-07-23 0
2011-07-22 1
2011-07-21 1
2011-07-20 1
2011-07-19 1
2011-07-18 1
2011-07-17 0
指定された_dateの数日前に_date
を返すクエリが必要です。x
カウントバックするときは、_days
withtrading_day = 0
は無視する必要があります。いくつかの例:
input | output
-------------------------+------------
1 day before 2011-07-19 | 2011-07-18
2 days before 2011-08-01 | 2011-07-28 (trading_day = 0 don't count)
3 days before 2011-07-29 | 2001-07-26
最初のものは簡単です:
SELECT _date
FROM daterange
WHERE trading_day = 0 AND _date < '2011-07-19' LIMIT 1
しかし、他の例を照会する方法がわかりません。あなたは?私はすべての場合に機能するソリューションを好むので、phpで日数を逆方向に可変にすることができます。