sql - TSQL - 百分比计算不起作用
问题描述
我创建了返回计数的子查询,例如下面;
我正在尝试将它们编码为LH / (GN + MarketRent + Commercial) * 100但有一个值来计算查询返回一个空值。
使用左外部连接主查询的子查询。
SELECT BLOCKS.[BLOCK-REF] AS [BLOCK-SUBB-REF], count(BLOCKS.[PLACE-REF]) NoOfMR
FROM [SQLViewsPro2EOD].[dbo].[IH-LOCATION] AS BLOCKS INNER JOIN
[SQLViewsPro2EOD].[dbo].[IH-LOCATION] AS SUBB ON BLOCKS.[BLOCK-REF] = SUBB.[PLACE-REF]
AND SUBB.[LOCATION-TYPE] IN ('BLOCK', 'SUBBLOCK', 'CBLOCK', 'HOSTEL', 'SCHEME') --and SUBB.[BLOCK-REF] <> ''
and BLOCKS.[LOCATION-TYPE] in ('FLAT', 'BEDSIT', 'BUNG', 'DUPLEX', 'ENDTER', 'GFLAT', 'GFLATOG', 'HOSTEL', 'HOUSE', 'MAISON', 'SEMDET', 'ROOM'
,'BLOCK', 'SUBBLOCK', 'CBLOCK', 'HOSTEL', 'SCHEME')
right JOIN [DBAdmin].[dbo].[BusinessPlanTenureMap] bp on bp.[ESTATE-CODE] = BLOCKS.[ESTATE-CODE]
WHERE
bp.[Business Plan Tenure] = 'MARKET RENTAL' and
(BLOCKS.[LOCATION-STS] <> 'D')
group by BLOCKS.[BLOCK-REF]
这是我到目前为止生成的代码,考虑到主查询中的除以零错误。% Leaseholders 列显示空值而不是 % 计算。
,cast(nullif(isnull(lhso.[NoOfLH-SO],0),0) as int)/ cast(nullif(isnull(gen.NoOfGN,0),0) + nullif(isnull(lhso.[NoOfLH-SO],0),0) + nullif(isnull(cm.NoOfCM,0),0) as int) * 100 '% leaseholder'
GN LH/SO MARKET RENTAL COMMERCIAL % Leaseholders
0 0 0 0 0.00
4 2 0 0 14.29
2 2 0 0 16.67
0 0 0 0 0.00
3 1 0 0 12.50
1 3 0 0 75.00
该表是预期的输出
任何提示建议表示赞赏。谢谢
谢谢杰里米,这部分查询有效,总计。
cast(isnull((nullif((isnull(gen.NoOfGN,0)
+ isnull(lhso.[NoOfLH-SO],0)
+isnull(mr.NoOfMR,0)
+isnull(rl.NoOfRL,0)
+isnull(cm.NoOfCM,0)
+isnull(hs.NoOfHS,0)
+isnull(op.NoOfOP,0)
+isnull(sh.NoOfSH,0)
+isnull(ec.NoOfEC,0) ),0)),0)as int) Total
但是当我添加这个
isnull(nullif(lhso.[NoOfLH-SO],0),0) /
到前面部分它返回一个错误除以零错误遇到。
我想我迎合了空值......
解决方案
推荐阅读
- pandas - 为什么会出现错误 AttributeError: 'bool' object has no attribute 'copy' 显示但一些值正在按需要打印?
- android - Android 地理围栏客户端 ApiException 1004:
- spring - Spring Boot 不会抛出 HttpMessageNotReadableException
- unity3d - 我无法让我的 Unity 播放器使用刚体朝它所面对的方向移动
- macos - 自 mac os 更新以来,Ansible 动态清单不起作用
- regex - 匹配 2 个标识符之间的所有内容
- tensorflow - 使用相同的参数一遍又一遍地构建神经网络会产生不同的结果
- javascript - 在Javascript中点击后如何从用户列表中获取特定的用户信息?
- reactjs - React.js -- 功能组件 -- DOM 操作,改变元素的样式
- vb.net - 如何让powershell从输入框vb读取数据