当完全相同的查询返回winSQL中的记录时,Coldfusion查询不返回任何记录

时间:2015-06-23 05:38:16

标签: sql-server coldfusion

有两个表:u_case和schedule 在u_case.cs_caseid = schedule.sd_caseid上,u_case和schedule之间存在一对多的关系 数据库是SqlServer

我需要在u_case.cs_chapter中使用13的所有记录 但是在u.schedule.sd_class中没有“dline”或者在schedule.sd_type中没有“pln13”。

此EXACT查询在WinSQL中有效并返回22条记录。 使用ColdFusion时,相同的EXACT查询返回2条记录(通过cfdump验证)

有没有关于为什么Coldfusion有这个问题以及如何修复它的建议?我发现了一些关于这个问题的疑问。

SELECT a.cs_caseid, a.cs_case_number, a.cs_date_filed, a.cs_short_title, a.cs_office, a.cs_type
FROM u_case a
 WHERE a.cs_chapter = 13
 AND a.cs_date_term is null
 AND 0 = (
        select count(b.sd_caseid)
        from schedule b
        WHERE b.sd_caseid = a.cs_caseid
        AND b.sd_class = "dline"
        and b.sd_type = "pln13"
        )

我在三台服务器(2 CF10和1 CF9)上遇到此问题。我还有其他查询,这发生...通常CF查询不返回任何记录。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我想知道CF是否在解析你所拥有的奇怪的SQL格式时遇到了麻烦?试试这个:

SELECT a.cs_caseid, a.cs_case_number, a.cs_date_filed, a.cs_short_title, a.cs_office, a.cs_type
FROM u_case a
WHERE a.cs_chapter = 13
AND a.cs_date_term is null
AND NOT EXISTS (
    SELECT 1
    FROM schedule b
    WHERE b.sd_caseid = a.cs_caseid
    AND b.sd_class = "dline"
    AND b.sd_type = "pln13"
)