2011-05-22 101 views
1

我使用Visual Studio 2008和想提出以下SQL查詢在一份報告:水晶報表 - 集團通過

select name, count(*) from mytable group by name; 

我可以通過創建一個數據集基本上是上面的查詢實現這一目標(由'name'和'count'組成),但是爲了查詢而創建一個額外的數據集似乎過分了。我寧願做什麼我已經在我的項目的其他報告完成,那就是有一個數據集是整個表:

select * from mytable; 

然後使用Crystal報表功能來進行分組。我無法找到一種方法來做這個分組。我認爲這是可能的?這將允許我重複使用該項目中其他區域的數據集,而不必爲每個報告創建唯一的數據集。

回答

2

在水晶報告中,通過'名稱'字段添加組,然後插入摘要中的任何字段摘要,將摘要功能更改爲'計數'。

1

在晶體中添加組字段;在這個例子中的名稱字段。

將詳細信息插入到組的頁腳中。

將一個計數函數插入組的頁腳,計算記錄唯一標識符。例如,如果您有多個相同名稱的出現,也可以使用不同的計數。

1

爲了獲得最佳性能,您應該在服務器端真正使用GROUP BY。
創建一個將數據提供給Crystal Report的視圖。

您可以在Crystal中進行分組,但是您會遇到性能問題
,因爲您的報告查詢的數據會放大。

這是一個設計決定,但它從長遠來看可以節省大量時間和客戶端處理。

我傾向於首先設計視圖(SELECT語句中的WHERE子句,GROUP BY子句,DB函數)
然後在準備好DB數據後的Crystal Report。

我的建議是從頭到尾着手。

8

分組字段

沒有寫SQL查詢,您可以將數據從表中。

在字段資源管理器中,您可以找到'組名稱字段'右鍵單擊並選擇'組專家'。

Creating a Group

選擇後,你會得到一組專家對話框,顯示字段中的數據表中找到。選擇您想要分組的字段名稱。 (在這裏,我選擇了「項目名稱」)

Group Expert Fields Selection

您還可以創建場下的子組,該組會被歸類爲A組,B組

現在您可以在您的水晶報表中自動添加組字段! 分組已完成!

計數視場

計數無記錄或字段在報告中,您需要添加一個新的「運行總計字段」

Add a New Count Field

添加要現場數。

添加字段後將'摘要類型'更改爲計數,然後按確定。

Adding Count Field

添加這個總場到您的報告中,你需要(組頁腳將是可取的)的區域。

現在找到您的字段名稱分組和計數,無需編寫任何SQL查詢。

希望這會幫助你,留下評論,如果有的話!

1

如果可能,創建一個數據庫視圖,將數據集分組,然後在水晶報表中使用該視圖。這是您要在報告中完成的最簡單和最易讀的實現。