日誌:Reporting Services 2005使用TOP N

日誌:Reporting Services 2005使用TOP N

TOP N…嗯,最近在處理一個報表需求,想說SQL裡有TOP N那麼Reporting Services裡也應該有TOP N才對,找了很久,總算找到了!

先說一下這個需求的背景,在一個資料表裏面,有五類的資料,姑且稱為A、B、C、D和E五類,這五類資料,小弟想用五個RS的資料表做出五類資料的TOP 5資料表,如果使用五個Dataset,分別去寫SELECT TOP 5 colA …Order by Counts Desc一定可以做得到的,可是,這樣會造成五個連線,況且,這些資料都在同一個資料表,透過RS資料表的Filter加上TOP N功能,那只要一個Dataset就夠了…

講起來很容易,但... TOP N找很久...

在本篇您可以學到:

1. 使用Top N Function的正確位置

2. 了解Top N可能的錯誤訊息

先看看這張圖,資料表撈出了十筆資料,但是只想取TOP 5…

  

好不容易在資料表屬性的【Filters】找到【Top N】功能,很自然的在Operator選擇Top N,在【Value】輸入5,因為只要Top 5麻…

(一開始小弟以為Top N功能是在Group, Row, Cell的Expression中,翻遍了Edit Expression裡的Operators與Common Functions怎麼會沒有Top N…最後在偶然之中下拉了Table Properties的Operator才找到原來Top N藏在這裡…Orz)

  

但是,事情並沒有這麼順利,執行報表出現下列的Error…

又花了一段時間除錯,索性將Operator改成>=好了…

  

還是錯,不過錯誤訊息已經更改了…資料型態有誤… @@?

  

想到難道要加一個等於符號嗎?

  

果然加上等於符號就過了

  

趕緊將Operator換成Top N再試試看…

  

歐歐歐,過了過了… TOP N終於成功了… ><~

  

為了這個Top N,小弟真的花了不少時間,問了兩位朋友,也用Google搜尋,就是找不到正確的資訊,一切都是在偶然中,就這樣找到答案了,不過也花了…滿多時間,寫下來希望對大家有幫助… :P