0
我正在使用SQL Server和Management Studio 2014,并且正在计算数据库中每种情况下药物随时间的累积剂量。下面是一个假设的案例和时间样本。SQL随着时间推移的累计和
Case_Name | InductionTime | DoseTime | EndTime |NEdose
2Z378J01 | 2007-03-07 08:58:00.000 | 2007-03-07 09:35:00.000 | 2007-07-03 13:06:15.000 | 0.01
2Z378J01 | 2007-03-07 08:58:00.000 | 2007-03-07 12:04:00.000 | 2007-07-03 13:06:15.000 | 0.02
2Z378J01 | 2007-03-07 08:58:00.000 | 2007-03-07 12:53:00.000 | 2007-07-03 13:06:15.000 | 0
2Z668I02 | 2007-06-06 08:46:00.000 | 2007-06-06 13:22:00.000 | 2007-06-06 13:51:45.000 | 0.04
2Z9C8E01 | 2007-09-12 08:46:00.000 | 2007-09-12 11:22:00.000 | 2007-12-09 11:46:00.000 | 0.02
2Z9C8E01 | 2007-09-12 08:46:00.000 | 2007-09-12 11:30:00.000 | 2007-12-09 11:46:00.000 | 0
2Z9C8E01 | 2007-09-12 08:46:00.000 | 2007-09-12 11:42:00.000 | 2007-12-09 11:46:00.000 | 0.01
2Z9C8E01 | 2007-09-12 08:46:00.000 | 2007-09-12 11:44:00.000 | 2007-12-09 11:46:00.000 | 0.02
我需要做的是找到以下的总和:
[NEdose1] x ([InductionTime] - [DoseTime1]) + //only if [InductionTime] > [DoseTime1]
[NEdose1] x ([DoseTime2] - [DoseTime1]) +
[NEdose2] x ([DoseTime3] - [DoseTime2]) + ... +
[NEdose(n-1)] x ([DoseTime(n]) - [DoseTime(n-1)])
[NEdose(n)] x ([EndTime] - [DoseTime(n)]) = TotalDose
Where [NEdose1] represents the value of the NEdose column in row 1 when the table is ordered by DoseTime.
The numbering scheme is the same for DoseTimes continuing to row n
每个Case_Name分。有些病例只有NEdose和DoseTime,有些病例多达20例。NE剂量以每分钟剂量计,所以时间扣除的单位以分钟为单位。
如果您对我入门有任何建议(我只是SQL的“爱好者”),他们将不胜感激。
编辑:我试图澄清我期望的计算
谢谢戈登。我很抱歉不清楚。在所需计算框中从1到n的每个数字表示按case_name分组并按DoseTime排序的第1行到第n行。所以计算需要使用行之间的值来计算总剂量。 – discopig