2016-04-18 2 views
1

У меня возникли проблемы с SQL-запросами. Специалист с этим, это так.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 дней) И (сегодня - 730 дней). Надеюсь, кто-то может дать мне полезные советы.

+0

Какой столбец определяет соотношение между '' patients' и visit' таблицы? –

+0

Извините, моя ошибка должна быть в третьем столбце 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

Но: 'select CURRENT_DATE - интервал 2 года' return '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

Это отлично работает, спасибо. :) –