2009年11月26日 星期四

如何設計動態的Top N報表?

問題:
如何設計動態的Top N報表?

答案:
用Crystal Reports 9的「Add Command」新功能。

1. 撰寫一個Command其中用一個參數來控制要選出前幾個(N)群組。

Access版的SQL Command

SELECT TOP {?N} `Customer`.`Country`, SUM(`Customer`.`Last Year's Sales`) AS Sum_Last_Years_Sales

FROM `Customer` `Customer`

GROUP BY `Customer`.`Country`

ORDER BY SUM(`Customer`.`Last Year's Sales`) DESC



SQL Server版的SQL Command

SELECT TOP {?N} SUM("CUSTOMER"."Last Year's Sales")AS Sum_Last_Years_Sales,"CUSTOMER"."COUNTRY"

FROM "Xtreme"."dbo"."CUSTOMER" "CUSTOMER"

GROUP BY "CUSTOMER"."COUNTRY"

ORDER BY SUM("CUSTOMER"."Last Year's Sales") DESC

2. 同樣在「Add Command」裡加入一個Paramenter:名稱為N、型別為Number。

3. 把「Sum_Last_Years_Sales」及「COUNTRY」欄位放入「Details」區段。

重新整理報表。便可根據使用者輸入的數字,動態顯示前N大群組。

沒有留言:

張貼留言