2013-06-06 4 views
1

Я просмотрел этот пост из прошлого года Jax: Деление на ноль произошло в выражении в производном столбце ssis, которое, казалось, охватывало мои вопросы, но Jax смог ответить сам и не дал ответа. Я хотел бы знать, какой метод использовался для облегчения ошибки Divisor = 0.SSIS Derived Column Transformation Expression Divisor 0 Ошибка

Мой вопрос в этом выражении: ISNULL (TotalPayrollCost)? 0: (ExcessCapacity * RouteVehicleCostAlloc)/TotalPayrollCost и я подтвердил, что TotalPayrollCost показывает 0 в просмотрах данных.

Я думал, что будет решение, использующее ISNULL и NULLIF вместе, но я просто не могу это получить, и NULLIF не работает в редакторе преобразований. Какие-либо предложения?

Заранее благодарен!

+0

Что должно получиться, если TotalPayrollCost равен 0? – billinkc

ответ

3

Логика ISNULL будет обрабатываться только тогда, когда TotalPayrollCost является NULL (шокирует, я знаю). Я предполагаю, так как вы упоминаете IsNull/NULLIF вы хотели бы взять ту же логику для этого значения, равного 0 утратившим поэтому ваше выражение станет

(ISNULL(TotalPayrollCost) || TotalPayrollCost == 0) ? 0 : (ExcessCapacity * RouteVehicleCostAlloc)/TotalPayrollCost 

Это в основном читает Если общая стоимость расчета заработной платы равна нулю или если общая стоимость заработной платы равна 0, а затем возвращает ноль. В противном случае сделайте это вычисление

+0

Большое спасибо и сожалею, что я не сразу вернулся к вам! И так да, функция ISNULL показалась мне вводящей в заблуждение относительно того, что мне нужно было выполнить. Я пытался использовать его с NULLIF и забыл вернуть его. Однако, дайте мне посмотреть, работает ли это - похоже, что это должно быть! – RARascon

+0

Отлично! Мне нужно было добавить дополнительное значение «=» (ISNULL (TotalPayrollCost) || TotalPayrollCost == 0)? 0: (ExcessCapacity * RouteVehicleCostAlloc)/TotalPayrollCost. Я, очевидно, все еще изучаю синтаксис в SSIS, который отличается от простого написания SQL или использования MS Access и т. Д. Еще раз спасибо! – RARascon

+0

О нет, я использовал шаблон 'ISNULL (NULLIF (ColA, 'SomeValue'), 'SafeValue'))' вместо утверждения case. Я также исправил выражение, поскольку вы определили мое назначение '=' вместо оценки '==' error;) – billinkc

Смежные вопросы