0

我需要获取某个流程后 20 天范围内的记录。

有一个medical包含数据的表,如下所示:

这是SQLFIDDLE:

在此处输入图像描述

规则是:如果 Group 是 A3,那么 20 天内的所有操作(to the same patient in the same hospital)都是免费的。

所以,在 09.02.2013 之前的所有操作都应该是免费的。(20.01.2013 + 20 天)

问题:如何在应用 A3 组流程之日起 20 天内检索所有记录?

4

1 回答 1

1

我冒昧地更改了 dat 的数据类型并将组的名称更改为 groupe。

WITH modified_medical
     AS (SELECT hospital, pid, dat
           FROM medical
          WHERE groupe = 'A3')
  SELECT *
    FROM medical a, modified_medical b
   WHERE     b.hospital = a.hospital
         AND b.pid = a.pid
         AND a.dat BETWEEN b.dat AND b.dat + 20
ORDER BY a.hospital, a.pid, a.dat;

样品小提琴在这里

于 2013-07-22T13:34:38.780 回答