Я пытаюсь преобразовать запрос Access в тот, который работает на сервере SQL. Исходный запрос в Access работает отлично (просто ужасно медленно).
Я лишь немного изменил его, чтобы сделать его совместимым с SQL-сервером вместо 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: ошибка деления на ноль.
Только реальные изменения, как я уже говорил, в Access мы могли бы сделать это
[ords] / [sent] AS PCT
Буду признателен за любую помощь, я точно не знаю, почему она не работает! Удаление приведенной выше строки работает на сервере SQL без ошибок.
Спасибо!