sql - SQL Case 语句逻辑问题
问题描述
试图让 case 语句中的逻辑起作用。用简单的英语我说“如果第一个表中的数量大于第二个表中的 ALOS,我想运行这个计算:
DRG_Rate=DRG_Rate + ([GMC Claims 2019].Qty-BCBS_DRG_REIMBURS.ALOS)* BCBS_DRG_REIMBURS.Per_Diem_High_Trim_Outlier
我让 Join 工作,它返回了在两个表中匹配的 DRG 以及 DRG_Rate。现在我想根据上面的条件语句来调整 DRG_Rate。如果你们都需要更多信息,请告诉我。我感谢任何指导,我对 SQL 很陌生!
*期望的结果是:第二个表中的 11513.43 比率 + (15-8) 2014.85 = 27,632.23
15 是第一个表中的 QTY,8 是第二个表中的 ALOS,2014.85 是第二个表中的每日津贴异常值**
这是我的尝试:
SELECT
CASE
DRG_Rate
WHEN [GMC Claims 2019].Qty > BCBS_DRG_REIMBURS.ALOS
THEN DRG_Rate=DRG_Rate + ([GMC Claims 2019].Qty-BCBS_DRG_REIMBURS.ALOS)* BCBS_DRG_REIMBURS.Per_Diem_High_Trim_Outlier
FROM [GMC Claims 2019] LEFT JOIN BCBS_DRG_REIMBURS ON
[GMC Claims 2019].DRG=BCBS_DRG_REIMBURS.DRG_Code
WHERE [GMC Claims 2019].DRG=BCBS_DRG_REIMBURS.DRG_Code
还有我的桌子:
CREATE TABLE [GMC Claims 2019] (
PatNo INT NOT NULL ,
PName VARCHAR(50) NOT NULL ,
HSSV VARCHAR(50) NOT NULL,
DateOfService INT,
InsName VARCHAR(50),
DRG INT,
RevCode INT,
CPT VARCHAR(50),
Qty INT ,
BilledCharges DECIMAL (9,2) NOT NULL,
);
INSERT INTO [GMC Claims 2019] (PatNo, PName, HSSV, DateOfService, InsName, DRG, RevCode, CPT, Qty, BilledCharges)
VALUES (5, 'Hisham', 'SIP', 5, 'BCBS', 439, 344, '44', 15, 500),
;
CREATE TABLE [BCBS DRG CARVE OUT 07012016] (
DRG INT NOT NULL ,
ServiceCat VARCHAR(50) NOT NULL ,
Pmt DECIMAL (8,2) NOT NULL
);
INSERT INTO [BCBS DRG CARVE OUT 07012016] (DRG, ServiceCat, Pmt)
VALUES (28, 'DRG Carve Out', 13537),
(29, 'DRG Carve Out', 13537),
(30, 'DRG Carve Out', 13537),
(101, 'DRG Carve Out', 13537);
CREATE TABLE BCBS_DRG_REIMBURS(
DRG_Code INTEGER NOT NULL PRIMARY KEY
,Description VARCHAR(200)
,DRG_Weight NUMERIC(8,5) NOT NULL
,ALOS INTEGER NOT NULL
,High_Trim INTEGER NOT NULL
,Effective_Date DATE
,DRG_Rate NUMERIC(9,2) NOT NULL
,Per_Diem_High_Trim_Outlier NUMERIC(8,2) NOT NULL
);
INSERT INTO BCBS_DRG_REIMBURS(DRG_Code,Description,DRG_Weight,ALOS,High_Trim,Effective_Date,DRG_Rate,Per_Diem_High_Trim_Outlier) VALUES (439,'DISORDERS OF PANCREAS EXCEPT MALIGNANCY W CC',0.86230,4,7,NULL,11513.43,2014.85);
解决方案
我感觉您是在有条件地为现有的 DRG 率添加一个值,所以我将其表示为通常为零的调整。无论哪种方式,您的问题主要是语法问题。
DRG_Rate +
CASE WHEN [GMC Claims 2019].Qty > BCBS_DRG_REIMBURS.ALOS
THEN ([GMC Claims 2019].Qty - BCBS_DRG_REIMBURS.ALOS) * BCBS_DRG_REIMBURS.Per_Diem_High_Trim_Outlier
ELSE 0
END
推荐阅读
- java - 如何将下拉箭头移动到 swt eclipse 小部件 ToolItem 的左侧
- javascript - this.state.array.map 不是函数错误
- angular - 使用 Angular 关闭浏览器窗口/选项卡时执行异步服务获取
- r - 减少 flexdashboard 的重复代码
- ios - 通用链接可在模拟器中使用,但不能在真实设备上使用
- c# - MVC & WebAPI“找到了多个与名为...的控制器匹配的类型”
- spring-boot - 如何拦截spring@Cacheable
- angular - 将数组拆分为 Observable 中的值
小块 - powershell - 每个脚本的模块范围都重复
- r - 遍历执行 group_by 和邻居分配的列