[英]Divide by zero error when converting Access to SQL Server query
我正在嘗試將Access查詢轉換為可在SQL Server中使用的查詢。 Access中的原始查詢工作得很好(非常慢)。
我僅作了些微改動,使其與SQL Server兼容,而不是與Access兼容,例如將“ NOW()”更改為“ GETDATE()”,並且我們無法再划分別名。
在SQL Server中運行此查詢:
SELECT batches.[price-group],
[development].verifier,
Count([development].company) AS SENT,
Sum([order] *- 1) AS ORDS,
Count([development].company) / Sum([order] *- 1) AS PCT
FROM [development]
INNER JOIN batches
ON [development].batch = batches.batch
WHERE (( ( [development].[mail-date] ) < Getdate() - 50 ))
GROUP BY batches.[price-group],
[development].verifier
HAVING (( ( batches.[price-group] ) = 'pgb' ))
ORDER BY batches.[price-group],
[development].verifier,
Count([development].company) DESC;
返回此錯誤:
消息8134,級別16,狀態1,第1行除以零錯誤。
就像我說的那樣,只有真正的改變,我們才能做到
[ords] / [sent] AS PCT
任何幫助將不勝感激,我不確定為什么它不起作用! 刪除上面轉換后的行,可以在SQL Server中正常運行,而不會出現任何錯誤。
謝謝!
使用NULLIF()
:
Count([development].company) / NULLIF(Sum([order] * -1), 0) AS PCT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.