2011-11-02 133 views
0

我有一個水晶報表,它基於兩個領域彙總的組和子組

  1. 公司名稱
  2. 通過聲明一組
  3. 帳戶類型

現在Crystal報表的工作,它確實組按「公司名稱」,但不按「帳戶類型」分組。我有兩種類型的帳戶,「常規和高級」。一家公司既有我們的帳戶類型,也有常規性而非高級性。你認爲是什麼問題。

我是新來的水晶報告。我熟悉SQL雖然。我看到的是

  • 沒有用於任何列中沒有聚合函數的差異 - 在SQL聚集場需要得到有意義的結果
  • 有報告10場,但GROUP BY僅用於在兩個領域 - 在SQL,你必須通過所有領域的羣體,如果有兩個以上領域
  • 田野集團在中間和結束 - 再次在SQL GROUPBY字段的順序是非常重要

在這種情況下,我先按公司名稱分組,然後按帳戶分組tatus。任何見解都會有所幫助。

請注意,我從Crystal Report生成了等效的SQL語句。除了不存在group by語句之外,該查詢是可以的。我自己添加了這些和聚合列,並且獲得與我在Crystal中獲得的結果相同的結果(但SQL報告更準確,因爲它通過兩個字段而不僅僅一個進行分組)。

編輯:示例日期。每家公司可以有多個相同類型的賬戶。我想彙總「公司名稱」和「AccountType」,以便數據列在下面。

+----+--------------+-------------+------+ 
| ID | Company Name | AccountType | Sale | 
+----+--------------+-------------+------+ 
| 1 | ABC   | I   | 500 | 
| 2 | ABC   | I   | 600 | 
| 3 | ABC   | O   | 1000 | 
| 4 | ABC   | O   | 2000 | 
| 5 | ABC   | O   | 3000 | 
| 6 | XYZ   | O   | 2500 | 
| 7 | LMN   | O   | 3400 | 
+----+--------------+-------------+------+ 

輸出I從上表中要的是

+--------------+-------------+------+ 
| Company Name | AccountType | Sale | 
+--------------+-------------+------+ 
| ABC   | I   | 1100 | 
| ABC   | O   | 6000 | 
| XYZ   | O   | 2500 | 
| LMN   | O   | 3400 | 
+--------------+-------------+------+ 

回答

3

更新納入評論的討論和修訂問題:

有解決這個問題的兩種基本的選擇:

1)修改SQL以執行所需的聚合。

2)在Crystal中,添加兩個組,一個用於公司,另一個用於帳戶類型。

在晶體中添加組之前,您有幾個標準節,包括報表標題,頁眉,詳細信息,報表頁腳和頁腳。

如果不執行分組,則在數據庫中讀取的每一行都將顯示在詳細信息部分中(技術上,每個行重複整個詳細信息部分)。

當您添加第一個組(公司)時,Crystal在詳細信息部分之前添加組標題#1,在詳細信息部分之後添加組標題#1。

如果您在此時運行報表,則對於每個公司,Crystal將在與該公司關聯的每組詳細記錄之前顯示組標題,然後將顯示該公司的所有詳細記錄,最後顯示該公司的集團頁腳。

通常情況下,組標題用於顯示該分組的公用信息,不需要爲每個明細記錄重複該信息。在這個例子中,我們可以顯示與公司相關的公司名稱和其他信息。

同樣,組頁腳通常用於顯示該組內顯示的所有詳細記錄的摘要信息。

在這種情況下,無論帳戶類型如何,我們都可以添加彙總銷售額的彙總,該銷售額將成爲該公司的總銷售額。

當添加第二組時,它將對原始組執行子分組。

當添加第二組時,Crystal會在組標題#1下方放置組標題#2,並在詳情上方放置組標題#2,並將組標題#2直接放置在細節下方和組頁腳#1上方。

在這一點上,你有類似以下報告格式:

Group Header #1 (Company) 
    Group Header #2 (Account Type) 
    Details (the individual sale records) 
    Group Footer #2 
Group Header #1 

在這種情況下,每個公司,我們希望通過組帳戶類型的詳細信息記錄。因此,如果需要,我們可以將描述帳戶類型的信息添加到Group Header#2,並且我們可以將聚合添加到Group Footer#2以顯示公司內每個帳戶類型的總計。

現在,如果希望顯示每個公司內每個帳戶類型的總計,那麼我們需要在報告中顯示的唯一部分是組頁腳2。所有這些字段(公司,賬戶類型,銷售總額)均可在此頁腳中找到,因此我們不需要任何其他區域。

+0

是的,一家公司可以同時擁有兩種類型的帳戶,儘管這種情況很罕見。如果我按「賬戶類型」進行分組,則報告將完全不同。 –

+0

對不起,我可能一直不清楚這一點:離開公司分組,但刪除AccountType分組。如果公司有多個帳戶類型,並且希望它們在報告中以一致的順序顯示,則可以按公司內的帳戶類型進行訂購,但這可能不是必需的。 –

+0

我已編輯該問題。我無法正確格式化ASCII表格。如果您點擊編輯按鈕,您將正確到達表格。我提供了原始(模型)和所需的輸出。注意我可以在SQL中完成,但我不熟悉Crystla中的工作方式。謝謝。 –