2014-07-23 38 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月表格记录来自今年的事实,并确保结果集中不包含符合该条件的人员。