Crystal Reports - 选择不符合条件的记录

时间:2014-07-23 14:05:41

标签: sql crystal-reports

我确信这应该很容易,但我真的很难用记录选择公式。

我继承了一个使用以下公式选择记录的报告:

{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表,其中包含我们使用的每个年轻人的记录,并且DT_YP_SEPTEMBER_GUARANTEE表中有一个YP_Ref,因此每个YP完全有可能没有,一个,两个或更多指向GUARANTEE表的链接,我需要查找他们是否没有链接或他们没有当前链接(即2014年1月1日之后)

1 个答案:

答案 0 :(得分:0)

您的标准似乎是:

  

选择所有没有匹配项的记录   DT_YP_SEPTEMBER_GUARANTEE表,其中包含今年的创建日期。

基于此,我会做以下事情:

1)将您的JOIN条件更改为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月表之间建立链接,并确保没有人见面该标准包含在结果集中。