2009-05-15 24 views
6

Tôi đã có bộ dữ liệu chưa được lọc để xử lý để tạo báo cáo (SQL Server 2005 btw).Trong dịch vụ báo cáo SQL, làm thế nào để lọc một tập dữ liệu theo một tham số?

Giả sử tôi có cột Tên và tôi muốn thêm thông số vào báo cáo của mình, để chỉ chọn các tên có chứa một số ký tự.

Có ai biết cách xử lý các bộ lọc này không?

Tôi đã cố gắng không có may mắn này:

=Fields!Name.Value Like =Parameters!FilterName.Value 

=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%" 

Tôi muốn để có thể có được những cái tên 'foo' và 'foobar', nếu tôi cung cấp cho các tham số 'oo'

Chỉnh sửa:Tôi biết việc lọc nên được thực hiện ở phía máy chủ SQL, nhưng tôi không kiểm soát tập dữ liệu tôi đã cung cấp (một dịch vụ web cung cấp phương thức không có tham số), vì vậy tôi phải lọc phía báo cáo.

+0

[Làm việc với bộ lọc dịch vụ báo cáo - Phần 2: Toán tử LIKE] (http://blog.datainspirations.com/2010/12/30/working-with-reporting -services-filters-part-2-like-operator /) –

+0

Tôi muốn thực hiện việc lọc trên chương trình phụ trợ. Tôi đã viết một loạt về những điều cơ bản của SSRS 2005 (và nó vẫn đang trong tiến trình). Đối với tham số cơ bản, xem bài viết mới nhất của tôi trên loạt bài (Sử dụng tham số): http://dbalink.wordpress.com/2009/05/02/how-to-report-authoring-in-ssrs-2005-part-iv -adding-parameters/ – MarlonRibunal

Trả lời

16

tôi trả lời cho câu hỏi của riêng tôi, khái niệm bộ lọc là trong thực tế:

=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*" 

ví dụ: sử dụng "*" thay vì "%", trên thực tế.

3

Phương pháp được ưu tiên là đi với kết hợp chính xác.

Bạn có thể tạo danh sách tham số đa giá trị từ tập dữ liệu được trả về từ truy vấn của bạn hoặc truy vấn thay thế, do đó đảm bảo có thể đạt được kết quả khớp chính xác.

Tham chiếu sau có thể hữu ích.

http://msdn.microsoft.com/en-us/library/ms155917.aspx

+0

Cảm ơn, liên kết này dẫn tôi đến trang ví dụ về bộ lọc báo cáo, mà tôi đã outlloked cho đến nay, dẫn tôi đến câu trả lời đúng. – Vinzz

+0

Không vấn đề gì, rất vui được giúp đỡ. –

0

Vào trang thuộc tính cho tập dữ liệu, hãy vào tab lọc. trong danh sách thả xuống biểu thức, nhấp vào trường bạn muốn lọc theo (Tên). nhấp vào toán tử và chọn. trong hộp giá trị nhấp vào lựa chọn biểu thức. Một cửa sổ mới sẽ mở ra. đi xuống danh sách tham số của bạn và thêm thông số vào phương trình. bấm ok.

2

Tôi khuyên bạn nên áp dụng bộ lọc như là một phần của câu lệnh SQL được thực hiện để mang lại DataSet thay vì cố áp dụng bộ lọc trong báo cáo Reporting Services. Tôi nghĩ rằng SQL Engine được tối ưu hóa nhiều hơn để xử lý các loại bộ lọc/truy vấn này.

+0

Tôi biết điều đó, và tôi muốn tôi có thể lọc càng sớm càng tốt, nhưng than ôi, webservice không phải của tôi, và chủ nhân của nó không quan tâm đến xà phòng, và muốn tôi lọc dữ liệu. – Vinzz

1

Câu trả lời của bạn giúp tôi đi đúng hướng :)! Có thể nó khác với SQL Server 2005; Nhưng giải pháp sau đã hiệu quả với tôi:

=Fields!AppName.Value Like ="*" & Parameters!FilterApplication.Value & "*" 
Các vấn đề liên quan