首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据条件忽略SQL Server中的多条记录并产生结果

根据条件忽略SQL Server中的多条记录并产生结果
EN

Stack Overflow用户
提问于 2021-11-19 09:16:08
回答 1查看 33关注 0票数 0

我在SQL Server中有以下表格:

代码语言:javascript
运行
复制
consult_date patient_id consultation_cost
-----------------------------------------
2021-10-30    1           -10
2021-05-30    1            10
2021-02-08    1            20
2021-01-27    1            22

我想为患者1选择最新的consult_date并生成提醒。这里最新的consult_date是2021-10-30,但问题是咨询已经被取消了,因为咨询成本在这里是负的。

我想忽略这一记录,也忽略consult_date 2021-05-30,因为consultation_cost (10)类似于负咨询成本(-10),该成本已被取消。因此,最新的咨询日期应该是2021-02-08。

解决办法应该是找到最大的咨询日期。如果成本为正,则将其作为最大咨询日期。如果它是否定的,则忽略该记录,忽略相同患者记录的正值的类似成本,并采用下一个最大咨询日期。

EN

回答 1

Stack Overflow用户

发布于 2021-11-19 09:30:40

您可以按consult_date的降序使用SUM over partition by patient_id,然后找到具有正值的最大日期。

代码语言:javascript
运行
复制
Select patient_id, Max(consult_date) As consult_date
From (
Select consult_date, patient_id, SUM(consultation_cost) Over (Partition by patient_id Order by consult_date Desc) As Agg
From Tbl) As T
Where Agg>0
Group by patient_id

输出:

代码语言:javascript
运行
复制
patient_id  consult_date
----------- ------------
1           2021-02-08
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70032432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档