我需要获取某个过程后20天范围内的记录。
表格medical
包含如下所示的数据:
以下是SQLFIDDLE:
规则是:如果群组是A3,那么20天内(to the same patient in the same hospital)
内的所有操作都是免费的。
因此,在2013年2月9日之前的所有操作都应该是免费的。 (2013年1月20日+20天)
问题:如何在应用A3组过程后的20天内检索所有记录?
答案 0 :(得分: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;
示例小提琴here。