【问题标题】:SQL query, who visited in the past yearSQL查询,过去一年谁访问过
【发布时间】:2016-04-18 06:57:27
【问题描述】:

我遇到了 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(today-365 days) AND (today-730 days) 之间。我希望有人能给我一些有用的提示。

【问题讨论】:

  • 哪一列定义了patientsvisit表的关系?
  • 对不起,我的错误,应该有第三列 FK_patients INTEGER NOT NULL

标签: sql oracle create-table


【解决方案1】:
select * from visit
where DATE_visit between
CURRENT_DATE - interval 2 year and CURRENT_DATE - interval 1 year;

【讨论】:

  • 这工作正常,但你需要添加间隔 '2' 和 internval '1' ,否则它不会工作。谢谢你的回答。
  • 但是:select CURRENT_DATE - interval 2 year return 2014-04-18... 它应该可以工作...
【解决方案2】:

试试这个来获取所有的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;

【讨论】:

    猜你喜欢
    • 2020-01-26
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2015-05-21
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多