2015-01-13 4 views
0

я есть это выражение в моем выражении ssrs поля:IIf в выражении поля Возвращает ошибки ssrs2008

iif(Sum(Fields!ActualWeight.Value)<>0 , 
Sum(Fields!ActualWeight.Value *Fields!AchievedPCN.Value)/Sum(Fields!ActualWeight.Value) 
,0) 

когда Sum(Fields!ActualWeight.Value) =0 и Sum(Fields!ActualWeight.Value *Fields!AchievedPCN.Value) =0 возвращение #Error

, почему это происходит? моя ssrs версия 2008.

+0

Вы уверены, ваши значения «ActualWeight.Value» и «AchievedPCN.Value» не равны нулю, а также убедитесь, что они 'str типа. –

+0

да, я добавляю в поле, чтобы показать эти значения, и эта ошибка возникает, когда Sum (Fields! ActualWeight.Value * Fields! AchievedPCN.Value) = 0 и –

+0

Если 'Sum (Fields! ActualWeight.Value * Fields! AchievedPCN.Value) = 0' это истинно, тогда ошибка должна произойти, так как 0, деленное на любое число, даст бесконечность. SO, если вы можете изменить свое условие в выражении, чтобы проверить непосредственно для умножения, что было бы хорошо. –

ответ

0

после очень старается я обнаружил, что это решение:

=IIF((CInt(Sum(Fields!ActualWeight.Value))>0 
and CInt(Sum(Fields!ActualWeight.Value *Fields!AchievedPCN.Value))>0), 
(Sum(Fields!ActualWeight.Value *Fields!AchievedPCN.Value))/iif(Sum(Fields!ActualWeight.Value)=0,1,Sum(Fields!ActualWeight.Value)),0) 

я должен добавить это к знаменателю:

iif(Sum(Fields!ActualWeight.Value)=0,1,Sum(Fields!ActualWeight.Value) 

вместо

Sum(Fields!ActualWeight.Value) 
Смежные вопросы