2012-02-24 91 views
2

我熟悉SQL,但不熟悉Crystal Reports。我試圖處理導入數據有5列設置:Crystal Reports等效於'WHERE'

id   deathDate   giftDate  giftAmount  Dead 
123   2008-01-06   2011-09-08  25.00   TRUE 
456   2009-06-08   2011-10-13  10.00   TRUE 
789    0    2011-12-04  50.00   FALSE 
... 

我試圖做一個子查詢,但無法弄清楚CR相當於凡在SQL會是什麼。我想沿線做一些事情:

SELECT count(id) from tab1 where dead=TRUE 

有什麼建議嗎?

+2

嘗試選擇專家(報告 - >選擇專家) – 2012-02-24 22:53:06

回答

3

正如Conrad和dotjoe所觀察到的,sql where子句的Crystal等價物是Select Expert - 您應該能夠在Report菜單上找到它。

如果您需要在詳細信息部分中包含true和false Dead記錄,但只需要那些Dead爲true的記錄的總數,最簡單的方法是設置公式項目。要這樣做:

  • 右鍵單擊字段資源管理器中的公式字段選項並選擇新建...。
  • 輸入一個合適的公式字段名稱,如DeadCount
  • 在公式編輯器中,輸入如下(假設Dead是一個字符串)的公式:

    If {tab1.Dead} = 'TRUE' then 1

  • 使用x-2按鈕(或者Alt-C),以檢查式不有任何錯誤,然後按保存並關閉按鈕退出公式編輯器。

  • 將新的公式字段從字段資源管理器拖放到報表中的任何位置。
  • 右鍵單擊剛剛添加到報告中的公式字段,然後從菜單中選擇插入>摘要...。
  • 在「插入摘要」對話框中,將彙總操作指定爲總和,並將彙總位置指定爲總計(報表頁腳),然後單擊確定。報告頁腳中應出現一個標記爲Sum of @DeadCount的摘要字段。 (你現在應該刪除從放置在報表設計區域未彙總公式字段。)

這種技術是基本相似,包括在SQL查詢中的總結案值 - 是這樣的:select sum(case when Dead = 'TRUE' then 1 end) as DeadCount from tab1

+0

+1您描述了一種替代方式來實現他們的「運行總計」字段。 – dotjoe 2012-02-25 14:33:13

1

一下添加到記錄選擇公式...

{datasetname.Dead} = true 
//note: I'm not sure what data type that is but CR uses bool for bit and XSD bool 

然後彙總字段添加到報表頁腳這不計數(ID)。或者,如果您需要顯示數據集並只需要子查詢,則可以使用稱爲「正在運行總計」的字段。在這裏,你可以做count(id)並將where子句添加到必要的公式中。