【发布时间】:2014-09-07 06:21:31
【问题描述】:
我在运行此查询时遇到错误“遇到除以零错误”。
> SUM(CASE WHEN EML_DateSent IS NOT NULL THEN 1 ELSE 0 END) AS [Sends],
(SUM(CASE WHEN EML_DateViewed IS NOT NULL OR EML_DateClicked IS NOT NULL THEN 1 ELSE 0 END)) * 100 / SUM((CASE WHEN EML_Datesent IS NOT NULL THEN 1 ELSE 0 END)) AS [Views %],
(SUM(CASE WHEN EML_DateClicked IS NOT NULL THEN 1 ELSE 0 END)) * 100 / SUM((CASE WHEN EML_DateViewed IS NOT NULL OR EML_DateClicked IS NOT NULL THEN 1 ELSE 0 END)) AS [Clicks %]
它是一个已编辑的现有存储过程,现在可以计算百分比,有什么快速解决方法吗?
【问题讨论】:
-
您遇到此错误是因为它可以被评估为零! ` ELSE 0 END` 在您使用的两种情况下。
-
很明显,这个片段可能会被零除
-
从分母中删除
ELSE 0。
标签: sql divide-by-zero