2017-07-29 17 views
0

私はSQLを使い慣れていません。私の馬のデータベースには、日付と馬の名前の2つの列があります。日付は馬の競走日と馬の名前です。前回の馬と前回の馬との日差を3列目にしたいと思います。SQLで関数がある場合の日付差分

ご協力いただければ幸いです。

+2

タグあなたの質問を使用しているデータベースで。 –

答えて

0

SQLの日付関数は異なります。 1つの一般的な方法は、単に減算です。

以前の日付を取得するには、ANSI標準lag()関数を使用できます(一部のデータベースでは使用できません)。

クエリは次のようになります。これは最初のレースのためにNULLなります

select h.*, 
     (racedate - lag(racedate) over (partition by horse order by racedate) as daysSinceLastRace 
from horses h; 

(注:一部のデータベースではなく引き算よりも、日中の違いは、「DATEDIFF()」関数を使用します。)

+0

ありがとう! – Zipping2010

+0

ありがとうございます。完璧に動作します。私は特定の準備の中で馬が走っていることをどのように数えますか?たとえば、馬が90日以上経過していない場合は、0になり、次に実行されるのは1になり、次に呪文が2回鳴り、カウントがリセットされるまで続きます。乾杯。 – Zipping2010

+0

@ Zipping2010。 。 。別の質問がある場合は、それをサンプルデータと希望の結果で質問してください。 –

関連する問題