此查询在SQL中运行perfact但在PHP中出错

时间:2013-07-12 05:30:03

标签: sql sql-server-2008 zend-framework

我有一个像这样的SQL查询:

 select * from tbl_ServiceRequest SR left join tbl_Events e on s.SRId = e.SRId where CustomerId = 65 and convert(nvarchar(10),s.CreatedDate,120) > (select convert(nvarchar(10),OrganisationCycleDate,120) from tbl_OrganizationDetail where OrgId = (select OrgId from Organization))))

当我运行它进入sql server 2008而不是运行perfact并给出正确的记录。

但我正在使用PHP和zend框架,并在php中给出了这个错误:

[Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near ';'.

没有任何';'在我的查询中。

问题出在第二个条件。如果我将删除第二个条件而不是没有给出任何错误。第二个条件是:

 and convert(nvarchar(10),s.CreatedDate,120) > (select convert(nvarchar(10),OrganisationCycleDate,120) from tbl_OrganizationDetail where OrgId = (select OrgId from Organization))))

当我尝试下载这些记录的pdf时,它给了我这个错误。我正在使用FPDF库。但它只是SQL Server的错误。

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT *
FROM tbl_ServiceRequest s
LEFT JOIN tbl_Events e ON s.SRId = e.SRId
WHERE CustomerId = 65
  AND convert(nvarchar(10),s.CreatedDate,120) >
    (SELECT convert(nvarchar(10),OrganisationCycleDate,120)
     FROM tbl_OrganizationDetail
     WHERE OrgId =
         (SELECT OrgId
          FROM Organization));

将您的tbl_ServiceRequest重命名为s 而不是 SR我想。

答案 1 :(得分:0)

我的问题解决了。 sql没有任何问题。

php有问题。

I just replace "&gt;" with > and "&lt;" with < in my query and it runs perfactly.

非常感谢A.S.罗马为你提供帮助..