2011-01-18 33 views
20

Tôi có báo cáo SSRS hiển thị một vài trang hàng. Trong mỗi hàng là trường "TYPE". Trong trường TYPE đó, hoặc là "M" cho giá trị hoặc "P" cho giá trị. Vào cuối báo cáo, tôi muốn tổng hợp tất cả các giá trị giá cho các "P" TYPES. Tôi cố gắng này, nhưng nó prioduced một #Error:SSRS Điều kiện tổng hợp

=Sum(iif(Fields!TYPE.Value = "P",Fields!EXT_QTY.Value * Fields!PRICE.Value ,0)) 

này tóm tắt tất cả các hàng

=iif(Fields!PART_TYPE.Value = "P" , Sum(Fields!EXT_QTY.Value * Fields!PRICE.Value), 0) 

Tôi chắc chắn đây là không-thể. Bất kỳ ý tưởng? Cảm ơn

+0

Tại sao cần có CDbl trong trường hợp này? –

+5

trong kịch bản của OP 'Sum (Fields! EXT_QTY.Value * Fields! PRICE.Value)' đang tạo số có đôi và/hoặc kiểu thập phân và trong SSRS khi bạn thực hiện SUM, nó mong muốn SUM các loại tương tự và '0' là số nguyên . Nó đã thất bại vì điều đó. Vì vậy, chuyển đổi cả phần đúng và sai của câu lệnh IIF thành cùng một kiểu dữ liệu sẽ giải quyết được lỗi. – N30

Trả lời

31

Tìm thấy câu trả lời ....

=SUM(IIF(Fields!PART_TYPE.Value ="P",CDbl(Fields!EXT_QTY.Value * Fields!PRICE.Value), CDbl(0.0))) 
11

Các SUM thất bại do gõ và so sánh- - bạn không thể Sum giá trị của các loại khác nhau, là sự biểu hiện (có thể là một Double) với 0, một Integer . Câu trả lời của MikeTWebb thực hiện chuyển đổi loại rõ ràng để khắc phục lỗi này. Điều này là tốt cho ví dụ cụ thể này, là một Sum, tuy nhiên điều này không tạo ra kết quả chính xác nếu bạn muốn trung bình (là Sum/Count) của các giá trị trong đó Loại là P. Đó là vì 0 là một giá trị và sẽ được bao gồm trong phép tính trung bình khi bạn thực sự muốn các giá trị đó bị loại trừ khỏi phép tính.

Một lựa chọn khác là sử dụng Nothing thay vì 0:

=Sum(IIF(Fields!TYPE.Value = "P", Fields!EXT_QTY.Value * Fields!PRICE.Value, Nothing)) 

Điều này giải quyết các lỗi kiểu so sánh mà không cần typecasting rõ ràng và là một giải pháp tốt hơn khi bạn đang sử dụng quy tụ nơi cho dù giá trị tồn tại hay không là quan trọng kết quả, như Average.

+1

Điều này thật hoàn hảo. Tôi chắc chắn nghĩ rằng việc sử dụng Không có gì là cách để đi như một "quy tắc ngón tay cái" vì tính toán như Trung bình. – Pete

+1

Yay! Đây chính xác là những gì tôi cần. Vẫn không nhận được những người nghĩ về 'Không có gì' beeing một từ khóa tốt cho null mặc dù. – Akaino

Các vấn đề liên quan