【发布时间】:2013-10-02 19:35:28
【问题描述】:
我正在尝试开发一个查询来确定个人在一个季度内每天服用的药物量。在某些日子里,没有处方药,而对于其他日子,可能会有重叠,我需要一个总量(意思是,一天中每种药物的强度)。药物的数量、强度、日用品等可能会有所不同。以下是一些数据:
create table #MemberInfo
(ProgramName varchar(255),
DateFilled datetime,
DaySupply integer,
MemberID varchar(255),
Strength integer,
Tradename varchar(255));
insert into #MemberInfo
Values ('InsureCo', '20130612', 30, 'MEM001', 10, 'Sedative')
, ('InsureCo', '20130429', 30, 'MEM001', 20, 'Sedative')
, ('InsureCo', '20130401', 30, 'MEM001', 20, 'Sedative')
, ('InsureCo', '20130529', 30, 'MEM001', 30, 'Sedative')
我真的不知道最好的方法是将一个季度中某一天服用的药物量加起来。如果可以的话,我想避免使用游标。我正在考虑创建一个包含一个季度所有天数的临时表,然后以某种方式将这些日期加入到每天服用药物(即,DateFilled + 之后的每一天直到 DaySupply)。一旦我掌握了一个季度内每种药物的日期和数量,我就可以按天分组并获得每天的总和。我还需要能够获得超过四分之一的平均金额。
附加要求:
- 我有一个开始日期和天数。我想创建一行 每个成员每天都有处方(并执行 他们所有的处方都一样)。然后我会总结力量 每天的所有药物。如果有帮助,所有的药物 将是同一级别的,并且强度将是相等的 剂量,这意味着我可以总结它们。
-
对于报告,我需要能够计算 数量大于某个截止值(比如说 100)。这就是为什么我 尝试获取每天的金额。
Desired output MemberID Date SumStrength MEM001 2013-04-29 40 MEM001 2013-04-30 40 MEM001 2013-05-01 20 ETC FOR EVERY DAY FOR THIS MEMBER MEM002 2013-04-01 60 MEM002 2013-04-02 40 ETC FOR EVERY DAY FOR THIS MEMBER
【问题讨论】:
-
这是一个很好的开始。现在所缺少的只是您希望从示例数据中获得的示例输出以及您自己实际检索该输出的努力,我们可以尝试帮助您找到答案。
-
我在原始问题中添加了一些简短的示例输出。提前致谢。这比我过去写的大多数查询要复杂一些。
-
我已将
medical标记删除为无关紧要。您的问题不是具体的医疗问题,因为它仅与金额和日期有关。
标签: sql sql-server