【发布时间】:2019-05-13 18:50:32
【问题描述】:
我继承了一些除以零错误的代码。
我不断收到错误消息,不确定是代码还是我将其放置在哪里。 应该添加这条线还是替换一条线?
尝试用这个 case 语句添加和替换: CASE WHEN SUM(PREOP_MME) = 0 THEN 0 ELSE SUM(PREOP_MME) / SUM(COUNT_CASES) END AS PREOP_MME)。
SELECT
PROCEDURE_NM
,SUM(PreOp_MME) / SUM(COUNT_CASES) PreOp_MME
,SUM(IntraOp_MME) / SUM(COUNT_CASES) IntraOp_MME
,SUM(PostOp_MME / PostOp_LOS) PostOp_MME
,SUM(Discharge_MME) / SUM(COUNT_CASES) Discharge_MME
,SUM(TOTAL_OVERALL_MME) / SUM(COUNT_CASES) Overall_MME
FROM (
SELECT DISTINCT
Spine.LOG_ID
,Spine.SERV_AREA_ID [Service Area ID]
,Spine.LOC_ID [Revenue Location ID]
,Spine.PRIMARY_PHYS_ID [Provider ID]
,Spine.SURGERY_DATE
,Spine.COUNT_CASES
,Spine.PROCEDURE_NM
,Spine.PostOp_LOS
,(PreOp.SUM_SIG * PreOp.PreOp_MME) AS PreOp_MME
,(IntraOp.SUM_SIG * IntraOp.IntraOp_MME) AS IntraOp_MME
,(PostOp.SUM_SIG * PostOp.PACU_MME) AS PostOp_MME
,DischMeds.DOSE_MME AS Discharge_MME
,(PreOp.SUM_SIG * PreOp.PreOp_MME) +
(IntraOp.SUM_SIG * IntraOp.IntraOp_MME) +
(PostOp.SUM_SIG * PostOp.PACU_MME) + DischMeds.DOSE_MME as TOTAL_OVERALL
【问题讨论】:
-
我猜你倒置了这些值。因为如果
A = 0那么A / anything也是0,你就不需要案例了 -
顺便说一句,您遇到了什么错误?因为在mysql中
A / 0没有报错,只返回null。 -
你使用的DB是MySql吗?别名如
[Service Area ID]说 MSSQL。 MySql 应该看起来像`Service Area ID` -
这是一个错误 - 这是 MSSql。
标签: sql-server