0

为什么我不能这样做:

    select distinct ps.ID, from vwList wt
    where Flag = 1 
    and GETDATE()  < (select dbo.fn_Date(ps.date1,ps.UploadDate) from pseres ps where ps.ID = wt.ID)  

我得到无法绑定多部分标识符“ps.ID”。

4

4 回答 4

2

由于 ps.ID 与 wt.ID 匹配,而 ps 只在子查询中提及,为什么不:

select distinct wt.ID from vwList wt

?

于 2012-08-15T20:54:28.493 回答
1

问题出在外部选择中。试试这个:

select distinct wt.ID
from vwList wt
where Flag = 1 and
      GETDATE()  < (select dbo.fn_Date(ps.date1,ps.UploadDate) from pseres ps where ps.ID = wt.ID)   
于 2012-08-15T20:55:22.923 回答
0

PS 在 where 子句的内部选择中。如果要从 pseres 中选择列,则需要将其放在 from 子句中或作为连接。

于 2012-08-15T20:55:42.077 回答
0

这应该有效:

SELECT DISTINCT wt.ID
FROM vwList wt
    INNER JOIN (SELECT dbo.fn_Date(ps.date1,ps.UploadDate) AS MyDate FROM pseres) ps ON     wt.ID = ps.ID
WHERE Flag = 1 AND
      MyDate > GETDATE()  
于 2012-08-15T20:59:50.413 回答