【发布时间】:2020-06-19 04:06:13
【问题描述】:
我有一个查询,其中通过公式选择记录包含除法,这是我的查询:
SELECT
Id AS [ID]
IIF(max(c.Capacity) = 0, 0.0,
max(TRY_CONVERT(float, f.Value) /
TRY_CONVERT(float, c.Capacity))) AS [Value],
FROM Form f
LEFT JOIN Control c
ON f.ID = c.FormID
GROUP BY
f.Id
我的错误是:
遇到除以零错误
问题是我必须使用Group By,它需要max() in IIF(),它不能过滤掉Capacity = 0。有人知道如何解决这个问题吗?
【问题讨论】:
-
这取决于您实际尝试计算的内容。将 NULL 替换为零是一种方法。在您的特定情况下,您应该只在其上放置一个 WHERE 子句(但这并不能保证您不会收到错误)
-
我看到你有一个左连接,所以
where不会删除它。而是在您的连接子句中尝试ON f.ID = c.FormID AND c.Capacity <> 0
标签: sql sql-server