Я полагаю, это зависит от того, какое поведение вы ожидаете, когда XXX_DataSetB равен нулю.
Если вы не хотите возвращать строки, которые могут вызвать ошибку, вы можете легко отфильтровать эти строки, добавив where XXX_DataSetB <> 0
к вашему запросу.
Если вы хотите, чтобы проблемные строки были равны NULL, вы можете использовать оператор case или что-то вроде этого:
cast(([XXX_DataSetB] - [XXX_DataSetA]) as decimal) / nullif([XXX_DataSetB], 0)