簡體   English   中英

將Access轉換為SQL Server查詢時除以零錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM