簡體   English   中英

如何在單個Crystal報表中獲得兩個沒有聯合鍵的兩個獨立表的總和?

[英]How do I get two sums of two separate tables with no joint keys in a single crystal report?

我有兩個表中的數據(請參見下面的示例)-如何創建僅顯示sum(table1.column1)和sum(table2.column1)的Crystal報表(實際上是“記分卡”的更多內容),而沒有其他詳細信息? 當我嘗試時,總和之一變得太大,表明它已包含在計算的某些內部循環中。

表格1:
列1:整數
第2欄:Varchar(100)
...

表2:
列1:整數
專欄2:Varchar(50)
...

注意- 沒有聯合鍵,表之間的唯一關系是它們與同一業務領域相關。

select t1.cnt, t2.cnt
from ( select count(*) cnt from table1 where... ) t1
, ( select count(*) cnt from table2 where... ) t2

如果您想避免使用子查詢方法,那么我能想到的唯一真正的方法就是使用子報告。

我可以想到2種方式:

  1. 將每個查詢放在自己的子報表中,並將它們鏈接到您的主報表中。
  2. 將一個查詢放在主報表中,將另一個查詢放在鏈接的子報表中。

我要警告一下,這幾乎肯定會比僅使用一個查詢(如Randy的回答)要慢,因為Crystal Reports的效率不如DB引擎。 這也可能比維護困難。 基本上,雖然您當然可以這樣做,但我不確定是否可以

您可以使用兩個SQL Expression字段。 每個字段都需要返回一個標量值。 您還可以將每個查詢與主報表的查詢關聯(鏈接)。

  1. 為Table1.uid添加分組級別。 創建運行總計Table1Sum,在Table1.Column1上求和,更改組Table1.uid時,永不重置。 在每個記錄上,在Table2.Column1上創建一個運行中的Table2Sum總和,並在更改Table1.uid組時重置。 在報表頁腳中打印兩個運行總計。
  2. 將查詢放在單獨的子報表中。 (這就是我可能要做的。)

第一個顯然需要(1)表1中的唯一鍵,以及(2)在頁腳中打印值。 如果這些約束不起作用,則兩個子報表仍應起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM