2014-07-23 40 views
0

我相信這應該很容易,但我真的在努力處理記錄選擇公式。水晶報表 - 選擇不符合標準的記錄

我繼承的是使用下面的公式來選擇記錄的報告:

{LU_LEA_DCSF.LEA_DCSF_Description} = {?LEA} and 
{DT_YP_SEPTEMBER_GUARANTEE.Created} > DateTime (2014, 01, 01, 00, 00, 00) and 
{DT_YP_TRACKER.Academic_Year} = "2014" and 
{DT_YP_TRACKER.Tracker_Type_Code} = "2" 

這檢查從今年擔保記錄,然後檢查是否正確類型的擔保,它工作正常。

但是;我的直線經理現在想創建一個列表,所有那些不要有保證。問題是他們可能在去年輸入了保證金,這意味着你不能進行'空'檢查(我認爲)。

我希望這是有道理的, 艾倫

更新與進一步的例子: 有它針對每個與我們合作年輕的人的記錄的DT_YP表,有一個YP_Ref在DT_YP_SEPTEMBER_GUARANTEE表所以它是對於每個YP完全有可能沒有,一個,兩個或多個鏈接到GUARANTEE表,我需要找出他們是否沒有鏈接或他們沒有當前鏈接(即在2014年1月1日之後)

+0

數據庫中的什麼字段會給你人們是否有保證? – Siva

+0

@Siva,這是DT_YP_SEPTEMBER_GUARANTEE表中是否有記錄 - 但它們可能從去年開始有記錄,所以我猜它是這樣的:沒有記錄或從之前的記錄1/1/14 –

+0

您可以添加'NOT'關鍵字來反轉一個布爾條件,比如'AND NOT {TD_YP_SEPTEMBER_GUARANTEE.CREATED}> ...'這樣可以過濾只有記錄沒有的記錄(儘管如果沒有記錄在這個表中開始,你可能會必須添加'NULL'邏輯或者用'LEFT JOIN'來修飾)。 – AHiggins

回答

0

您的標準似乎是:

選擇在今年創建日期的 DT_YP_SEPTEMBER_GUARANTEE表中不匹配的所有記錄。

此基礎上,我將做到以下幾點:

1)改變你的連接條件DT_YP_SEPTEMBER_GUARANTEE是一個

LEFT JOIN DT_YP_SEPTEMBER_GUARANTEE 
ON *whatever the current condition is* 
AND {DT_YP_SEPTEMBER_GUARANTEE.Created} > DateTime (2014, 01, 01, 00, 00, 00) 

2)你的WHERE子句中添加聲明,大意(不記得這是否是Crystal語法):

{DT_YP_SEPTEMBER_GUARANTEE.YP_Ref} IS NULL 

這將試圖建立您現有的表格和9月表格基於鍵匹配和9月表格記錄來自今年的事實,並確保結果集中不包含符合該條件的人員。