Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql t至少接受了一年的治疗,不一定在今天的一年内。您的查询将忽略在2008年4月1日开始服务的人,其最后一次预约是在2009年6月30日。@Scott Mitchell:我明白您的意思,但过去接受治疗一年或几年的人是否有效?这是OP必须更好地澄清的事情。@OM_Sql_Oracle_Oracle10g - Fatal编程技术网

Sql t至少接受了一年的治疗,不一定在今天的一年内。您的查询将忽略在2008年4月1日开始服务的人,其最后一次预约是在2009年6月30日。@Scott Mitchell:我明白您的意思,但过去接受治疗一年或几年的人是否有效?这是OP必须更好地澄清的事情。@OM

Sql t至少接受了一年的治疗,不一定在今天的一年内。您的查询将忽略在2008年4月1日开始服务的人,其最后一次预约是在2009年6月30日。@Scott Mitchell:我明白您的意思,但过去接受治疗一年或几年的人是否有效?这是OP必须更好地澄清的事情。@OM,sql,oracle,oracle10g,Sql,Oracle,Oracle10g,t至少接受了一年的治疗,不一定在今天的一年内。您的查询将忽略在2008年4月1日开始服务的人,其最后一次预约是在2009年6月30日。@Scott Mitchell:我明白您的意思,但过去接受治疗一年或几年的人是否有效?这是OP必须更好地澄清的事情。@OMG Ponies:我同意措辞令人困惑,需要澄清。然而,请注意OP的评论:“我正试图确定他们至少接受了一年的治疗。”这让我相信他希望看到至少接受了一年治疗的患者,即使他们的最后一次治疗是在一年多以前。@OMG Ponies:我仍然不认为你得到了治



t至少接受了一年的治疗,不一定在今天的一年内。您的查询将忽略在2008年4月1日开始服务的人,其最后一次预约是在2009年6月30日。@Scott Mitchell:我明白您的意思,但过去接受治疗一年或几年的人是否有效?这是OP必须更好地澄清的事情。@OMG Ponies:我同意措辞令人困惑,需要澄清。然而,请注意OP的评论:“我正试图确定他们至少接受了一年的治疗。”这让我相信他希望看到至少接受了一年治疗的患者,即使他们的最后一次治疗是在一年多以前。@OMG Ponies:我仍然不认为你得到了治疗。您的第二个查询返回所有预约时间在过去一年或更长的患者。他想要(我想)的是,从患者的第一次就诊到最近一次就诊之间至少有一年的时间,无论何时。@Scott Mitchell:在OP的最后一条评论中,我没有看到关于第一次预约的要求。Oracle不支持DATEDIFF,但MySQL和SQL Server支持它(虽然不同的语法IIRC)。啊,现在有了可能性。谢谢!@OMG Ponies:是的,但是SharekOfVulcan在他的问题中说,“不要太担心确切的语法和命名。”按照这种逻辑,你可以找到解决问题的逻辑,但仍然需要获得Oracle语法(除非这是针对另一个数据库的)--这与OP开始的位置相同。但是逻辑与我给出的EXISTS示例相同-不需要检查最大值,因为EXISTS在第一次成功使用该标准时返回true。我当时应该对此进行标记,但我非常确定这就是我解决问题的方法。OMG Ponies的EXISTS解决方案相当优雅,不是吗哦,现在我已经绞尽脑汁了……Oracle不支持DATEDIFF,但MySQL和SQL Server支持DATEDIFF(虽然不同的语法IIRC)。啊,现在有了可能性。谢谢!@OMG Ponies:是的,但SharekOfVulcan在他的问题中说,“不要太担心确切的语法和命名。”根据这种逻辑,您将拥有解决问题的逻辑,但仍然需要获得Oracle语法(除非这是针对另一个数据库的)--这与OP开始的位置相同。但是逻辑与我给出的EXISTS示例相同-不需要检查最大值,因为EXISTS在第一次成功使用该标准时返回true。我当时应该对此进行标记,但我非常确定这就是我解决问题的方法。OMG Ponies的EXISTS解决方案相当优雅,不是吗哦,现在我已经绞尽脑汁了…lead不会有帮助,因为他们之间可能会有很多访问。不过,将此与Scott的Min/Max建议相结合可能会很有用。谢谢!是的,您需要设置一些条件来满足您的确切要求。我只是认为窗口函数对于此类查询非常有用…lead不会吗lp,因为他们之间可能会有很多访问。不过,将此与Scott的最小/最大建议相结合可能会很有用。谢谢!是的,您需要设置一些条件来满足您的确切要求。我只是认为窗口函数对于此类查询非常有用。。。
select distinct * from PatientHistory
where lastVisit = date_sub(lastVisit,interval 1 year)
SELECT ph.*
  FROM PATIENT_HISTORY ph
 WHERE ph.visit_date >= (SYSDATE - 365)
SELECT ph.*
  FROM PATIENT_HISTORY ph
 WHERE ph.visit_date >= ADD_MONTHS(SYSDATE, -12)
SELECT a.*
  FROM PATIENT_HISTORY a
 WHERE EXISTS(SELECT NULL
                FROM PATIENT_HISTORY b
               WHERE b.visit_date <= ADD_MONTHS(a.visit_date, -12))
SELECT *
FROM Patients p
WHERE 
    DATEDIFF(d, 
             (SELECT MIN(AppointmentDate) FROM Appointments a WHERE a.PatientID = p.PatientID),
             (SELECT MAX(AppointmentDate) FROM Appointments a WHERE a.PatientID = p.PatientID)) >= 365
create table visits (
    patient_id number,
    visit_date date,
    ....
);
select patient_id, visit_date, 
       lead(visit_date, 1, null) 
           over (partition by patient_id order by visit_date) as next_visit_date
  from visits;