2011-07-29 43 views
3

mysqlのNOW()まで最後の水曜日以降のSUM値を選択したいと思います。どうやってやるの?最後の特定の曜日以降のレコードを選択します。

申し訳ありませんが、最後の水曜日までに、日付をハードコードすることを意味するのではなく、プログラムでそのクエリを実行するので、ハードコードできません---柔軟なソリューションが必要です。これは、次のとおりです。

+1

あなたのアプリケーションで "last wednesday"の日付を計算して、まっすぐな 'WHERE datecol> '2011-07-20''を実行するのが最も簡単で最も効率的です。 –

答えて

1

ジェネシスは(彼は非常に正しいです、彼の提案を使用)右ですが、知的な運動として(最速溶液)あなたのプログラミング言語からあなたの日付を計算する必要があります...

+0

こんにちは、このソリューションは正しいです。しかし1つの問題は、最後の水曜日の前の水曜から記録を取ります。私は問題が+ 3日にあると思う。私はそれを修正しようとしましたが、多くの構文エラーをもたらします –

+0

実際にDAYOFWEEK(NOW())+ 3 DAY)は9を返します。したがって、今日からは9日が派生しています..助けてください.. –

+0

それは正しいです。 2日前は水曜日、それは前の水曜日です。あなたはそうすることができます - その代わりに4それはこれまでの水曜日になるでしょう – cwallenpoole

1
SELECT SUM(value) FROM table WHERE date > '2011-07-20' 

を助けてください私が考えることができる最高の純粋なMySQL:

SELECT * FROM TABLE 
    WHERE 
    DATE_COLUMN > DATE_SUB(NOW(), INTERVAL DAYOFWEEK(NOW()) + 3 DAY); 

NOW - DAYOFWEEK =>この過去の土曜日。水。その3日前です。

+0

非常に簡単ですが、私はあなたの答えを受け入れていない、あなたはちょうどこの投稿をdownvoted。 しかし、tbh、あなた自身が答えてくれましたか?あなたがプログラミング言語ですべてをしなければならないのなら、なぜDBMSが作られたのですか?あなたのデータをテキストファイルに保存するだけですか? Huh –

2
select date_sub(now(), interval dayofweek(date_sub(now(), interval 4 day)) day); 

これは、任意の曜日に動作し、常に最新の水曜日を返します。水曜日にそれは前の水曜日を返します。翌日、それは昨日戻ってきます

関連する問題