2013-01-09 25 views
14

Tôi có một báo cáo với hai bảng. Bảng đầu tiên là danh sách khách hàng, chi tiết từng khách hàng nằm trong một danh mục gồm ba mục với các mục khác nhau cho mỗi khách hàng. SQL tham gia lập một client_table với bảng client_items (có thể có nhiều mục cho mỗi khách hàng) kết quả SQL trông giống như vậy:SSRS Đếm các lĩnh vực riêng biệt! B.value Trường hợp! A.value =

Type ClientID ItemID 
A  1   1 
A  3   1 
A  3   2 
B  2   1 
B  4   3 
C  5   2 

bảng thứ hai của tôi là sẽ trở lại tội danh các clientIds khác biệt với sự kết hợp khác nhau của loại:

  • Tổng (A + B + C) - tôi đã có một này đã tìm ra với =CountDistinct(Fields!ClientID.Value,"datasource1")

  • loại B + C - clientIds biệt nơi các loại là B hoặc C

  • Loại C - clientIds biệt nơi các loại là C

Tôi hy vọng đó là rõ ràng, nếu không muốn nói cho tôi biết những gì tôi cần thêm để xóa nó lên.

Trả lời

21

CountDistinct() đếm giá trị không null, vì vậy bạn có thể sử dụng biểu thức để loại trừ các giá trị bạn không muốn đếm và thực hiện tương tự như giá trị đầu tiên của mình.

Loại B + C:

=CountDistinct 
(
    IIf 
    (
    Fields!Type.Value = "B" or Fields!Type.Value = "C" 
    , Fields!ClientId.Value 
    , Nothing 
) 
    , "datasource1" 
) 

Loại C:

=CountDistinct 
(
    IIf 
    (
    Fields!Type.Value = "C" 
    , Fields!ClientId.Value 
    , Nothing 
) 
    , "datasource1" 
) 
+0

Đó chính xác là những gì tôi đã nghĩ ra, chỉ cần quay lại để tự trả lời, nhưng ya đã đánh bại tôi. Cảm ơn! Aslo, hiểu rõ hơn về lời giải thích của tôi ... Tôi biết vấn đề này có một giải pháp đơn giản, nhưng tôi nhận ra rằng sự bất lực của tôi để mô tả vấn đề sẽ là trở ngại lớn nhất của tôi. – jreed121

2
=Sum(CountDistinct(Fields!UserName.Value,"IssueDate7")) 

đây Tên đăng nhập là nhóm hàng và Issuedate7 là nhóm cột

Trân

Mercy S

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