导出所有不在比较表中

时间:2012-06-07 17:43:09

标签: tsql common-table-expression

我一直使用以下导出查询(CTE)几年,但客户要求我们不向他们提供来自'C'行的所有数据,因为他们不需要一些数据。我拥有他们不需要的所有原告名称,但我不知道如何调整查询以排除他们不需要的原告名称。如下所示使用NOT IN无效,我猜我错过了什么!

SELECT 4 AS grpOrd
    , null AS posInGrp
    , 'C'
    , A.CaseNumberKey
    , 'C|' + IsNull(J.CType, '') + '|' + IsNull(J.plaintiffName,'') + '|' + IsNull(J.plaintiffAdd1, '') + '|' + IsNull(J.plaintiffCity, '') + '|' + IsNull(J.plaintiffState, '') + '|' + IsNull(J.plaintiffZip, '') + '|' + '|' + IsNull(J.defendantName, '') + '|' + IsNull(J.defendantAdd1, '') + '|' + IsNull(J.defCity, '') + '|' + IsNull(J.defState, '') + '|' + IsNull(J.defZip, '') + '|' +  '|' + IsNull(J.Court, '') + '|' + IsNull(J.CaseID, '') + '|' + IsNull(J.JAmt, '') + '|' + IsNull(replace(convert(VarChar(10), JDate, 101), '/', ''), '') + '|' + IsNull(replace(convert(VARCHAR(10), revivedDate, 101), '/', ''), '') AS Extract
FROM   newCityCollection.dbo.PropertyInformation A 
JOIN   Acme.new_judgment_system.dbo.selected_compiled_clean J 
    ON J.CaseNumber = A.CaseNumberKey
WHERE  A.DateFinished BETWEEN @PeriodStart AND @PeriodEnd 
    AND ClientKey = 2 
    AND (J.plaintiffName NOT IN (SELECT Plaintiff FROM dbo.excluded_Plaintiffs))

当我尝试运行此对象时,我收到无效的对象名dbo.excluded_Plaintiffs。请注意,CTE的底部有很多行,但问题仅在于最后一行。

他们不想要的普通原告的例子是'PHILA TRAFFIC COURT'

是否可以调整以上内容来检查表格(excluded_Plaintiffs)并排除该数据?我试图无济于事,希望有人有答案。

1 个答案:

答案 0 :(得分:0)

我回答了自己的问题。我错过了这行数据库dbo.excluded_Plaintiffs。应写成newCityCollection.dbo.excluded_Plaintiffs。