我正在使用 SQL Server 2008 R2 并尝试创建一个显示日期是否重叠的查询。
我正在尝试计算某人在特定标准下的覆盖天数。这是表的示例...
CREATE TABLE mytable
(
CARDNBR varchar(10)
GPI char(14) ,
GPI_DESCRIPTION_10 varchar(50) ,
RX_DATE datetime ,
DAYS_SUPPLY int ,
END_DT datetime ,
METRIC_QUANTITY float
)
INSERT INTO mytable VALUES ('1234567890','27200040000315','Glyburide','01/30/2013','30','03/01/2013','60')
INSERT INTO mytable VALUES ('1234567890','27200040000315','Glyburide','03/04/2013','30','04/03/2013','60')
INSERT INTO mytable VALUES ('1234567890','27250050007520','Metformin','01/03/2013','30','02/02/2013','120')
INSERT INTO mytable VALUES ('1234567890','27250050007520','Metformin','02/27/2013','30','03/29/2013','120')
我希望能够计算一个人从第一个 RX_DATE 到最后一个 END_DT 的天数,在这个例子中是 90 天(4/3/13 - 1/3/13)。
那部分已经完成,但这就是我遇到麻烦的地方。
在第 1 行和第 2 行之间,有 3 天的时间没有服用药物。在第 3 行和第 4 行之间有 25 天的时间。但是,在这 25 天期间,第 1 行填补了这一空白。因此,对于第 1 行和第 2 行之间的间隙,我需要显示的结束编号是 3。
任何帮助将不胜感激。
谢谢。