2016-04-18 12 views
1

SQLクエリーに問題があります。この1つのスペシャルは、これのように行く。過去1年間に訪問したSQLクエリ

私は2つのテーブル、患者と訪問を持っています。

CREATE TABLE patients (
    ID_patients INTEGER NOT NULL, 
    Name VARCHAR NOT NULL 
); 

と今

CREATE TABLE visit(
    ID_visit INTEGER NOT NULL, 
    DATE_visit DATE NOT NULL, 
    FK_patients INTEGER NOT NULL 
); 

私は、クエリをしたいと思い、それは過去年に訪れた患者を教えてでしょうか?そして、私は2015年を例にとるのではなく、BETWEN(今日365日)AND(今日730日)のように意味します。私は誰かが私にいくつかの役に立つヒントを与えることを願っています。

+0

列は 'patients'と' visit'テーブル間の関係を定義しますか? –

+0

申し訳ありませんが、私の間違いは、第3列があるはずです FK_patients INTEGER NOT NULL –

答えて

0
select * from visit 
where DATE_visit between 
CURRENT_DATE - interval 2 year and CURRENT_DATE - interval 1 year; 
+0

これは正常ですが、間隔 '2'とインターバル '1'を追加する必要があります。あなたの答えをありがとう。 –

+0

しかし、 '選択CURRENT_DATE - 間隔2年'戻り '2014-04-18' ...それは動作するはずです... –

0

すべてpatients名フェッチするために、これを試してみてください:

SELECT patients.name 
    FROM patients, visit 
WHERE patients.id = visit.fk_patients 
    AND DATE_visit BETWEEN CURRENT_DATE - interval '2' year AND CURRENT_DATE - interval '1' year; 
+0

これはうまく動作します、ありがとうございます。 :) –

関連する問題