Вам просто нужно изменить первый аргумент, чтобы он возвращал 0, если {quantity}-{quantityshiprecv}
отрицательно, но все равно дает правильный ответ, если он положительный. Вот один из способов:
NULLIF(({quantity}-{quantityshiprecv} + ABS({quantity}-{quantityshiprecv}))/2,0)
Это добавляет абсолютное значение разницы к неизменной разнице. Если разница положительная, это дает вам вдвое больше, чем вы хотите. Если оно отрицательное, абсолютное значение (ABS()
) будет отрицать это отрицательное значение, оставляя вас с нулем. Затем вы можете разделить на 2; положительное теперь правильно, отрицательное остается нулевым. Остальная часть NULLIF()
остается прежней.