我無法確定如何從輔助表中提取值,以便在每個記錄的基礎上用作選擇條件。Crystal Reports SQL表達式
我在Windows 7上使用Crystal Reports 2011,通過ODBC連接到Oracle 11g數據庫。
我創建的兩個位置利用信息的員工目錄:
- 表:師範
- 觀點:PVSIS_CUSTOM_TEACHERS
老師表設置了您的預測字段:ID ,姓,名,電話,地址,城市,州,郵編等等等等。
該視圖有以下可用字段:
- TEACHERID
- FIELD_NAME
- TEXT_VALUE
我使用的數據庫應用程序可以讓我創建相關回到主教師表 「自定義字段」。實際上,我創建的字段實際上存儲在單獨的表中,但可以通過PVSIS_CUSTOM_TEACHERS視圖進行訪問。由於數據庫應用程序允許創建任意數量的「自定義字段」,因此該視圖中可以包含任意數量的記錄,這些記錄可以綁定到教師表中的記錄。
有跡象表明,已經創造了許多自定義字段,但我的當前項目的目的,其中只有3件事:
- empDirSupRecord
- empDirSupPhone
- empDirSupAddr
我個人教師記錄的觀點如下:
TeacherID Field_Name Text_Value 1 empDirSupRecord 1 empDirSupPhone 1 1 empDirSupAddr 1 1 AnotherField another_value 1 YetAnotherField yetanother_value
(這表明我要我的電話和地址被抑制,但仍希望被列入目錄我的名字)
這些字段將每個包含一個「1」,如果用戶已經要求他們的電話號碼或地址不公開,或者我們需要完全禁止整個記錄。
當我剛開始我的報告,我把兩個表和視圖到數據庫專家,並與teachers.id = pvsis_custom_teachers.teacherid聯繫在一起的他們。但是,這會導致每個教師的姓名在報告中打印一次,其中每個記錄的教師ID都在視圖中顯示。因爲這不是我想要的行爲,我刪除從數據庫中專家的觀點,並使用SQL表達式字段檢索自定義字段的內容嘗試。這是我目前卡住的地方。我需要編寫SQL在選擇正確命名的領域,爲每個教師檔案作爲記錄正在被報告處理的方式。
目前,我的SQL表達式語句應爲:
(SELECT text_value FROM pvsis_custom_teachers WHERE field_name = 'empDirSupRecord' AND teacherid = '1')
我需要做的是找出如何得到報告,智能地選擇teacherid記錄什麼=(無論是當前正在處理teacherid) 。我不確定是否需要使用SQL表達式字段來完成此操作,因此,如果我目前的方法無效,那麼我肯定會開放替代建議。
感謝您的關注。 :-)
感謝您的迴應!我認爲這又讓我走了! :) – 2013-02-20 19:05:02