sql - 在交叉表查询中将空值转换为零
问题描述
下面的代码是导致交叉表查询的较大代码的子集。问题是右侧的总列将交叉表查询中的所有数字列求和,因为它会导致在它试图求和的十二列之一中具有空值的任何行的结果为 0。
我相信我需要在代码的以下行中添加一个条件,如果值为空,则结果为零。我只需要有人再看看它。如果有更好的替代解决方案,我也很乐意接受。
SUM(entry) for MX in (M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12)
SELECT
tblCenters.prop
,tblAccounts.Category_EXCO
,tblCenters.CenterNum
,tblAccounts.AccountNum
,tblAccounts.Account_Description
,tblAccounts.Is_Revenue
,tblAccounts.Is_Above_EBITDA
,tblCenters.Division_Description
,tblCenters.[Is_F&B1]
,tblCenters.Group_Description
,Entry
,MX
FROM GA_Financial.dbo.tblSAP
left join tblMX on tblSAP.MDY = tblMX.MDY
left join tblAccounts on tblSAP.AccountNum = tblAccounts.AccountNum
left join tblCenters on tblSAP.CenterNum = tblCenters.CenterNum and tblSAP.Prop_SAP = tblCenters.PROP_SAP
WHERE tblAccounts.Is_Above_EBITDA = 1
AND tblSAP.Type = 'A'
)
AS Tab1
--The code below breaks down column "Entry" into twelve individual monthly columns and fills columns M1 through M12
PIVOT
(
SUM(entry) for MX in (M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12)
) as TAb2
where Prop = 'RWNY'
解决方案
我认为您可以使用 COALESCE 或 IFNULL 函数将空值替换为 0 以进行总和计算。查看此响应:可在 SQL Server 和 MS Access 中使用的 COALESCE、IFNULL 或 NZ() 函数
推荐阅读
- akka - 在运行时检查 Akka 调度程序
- r-markdown - 将 Markdown 方程的 xtable 转换为 Word 或 .rtf
- c# - 如何将此玩家移动脚本转换为触摸屏功能?
- amazon-web-services - AWS RDSDataService 查询未运行
- html - 如何在bootstrap 4的小屏幕中使卡体水平
- java - 使用不同类型的条件(三元)运算符进行局部变量类型推断
- r - 字符列中每个单词的频率
- python - 增加日期月份的更好方法?
- javascript - 如何处理从快递服务器发送的ajax post响应?
- c++ - 使用 QML&C++ 的应用程序中的绑定循环问题