sql server使用select语句检查是否大于

sql server使用select语句检查是否大于,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,为什么我不能这样做: 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无法绑定 由于ps.ID与wt.ID匹配,并且ps仅在子查询中提及,为什么不: select distinct

为什么我不能这样做:

    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无法绑定

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

select distinct wt.ID from vwList wt

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

select distinct wt.ID from vwList wt

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

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)   

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

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)   

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

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

这应该可以:

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()  
这应该起作用:

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()  

@Gordan Linoff-是否正确,我需要执行以下操作:PS位于where子句的内部select中。如果要从pseres中选择列,则需要将其放在from子句中或作为Greg提到的联接。@NatePet。这是正确的。但是,在连接的from子句中不能有相关子查询。但是,你可以有一个带有APPLY的相关子查询,而不是JOIN.Lindoff——那么这是否意味着我所拥有的是正确的并且可以工作呢?我不知道你拥有什么。仅引用外部from中的表将使用wt.id而不是ps.id。假设子查询始终只返回一行,则查询应该可以工作。我倾向于在dbo.fn_Dateps.date1,ps.UploadDate周围加上max或min,以防万一。@Gordan Linoff-是否正确,我需要做以下操作:ps在where子句的内部select中。如果要从pseres中选择列,则需要将其放在from子句中或作为Greg提到的联接。@NatePet。这是正确的。但是,在连接的from子句中不能有相关子查询。但是,你可以有一个带有APPLY的相关子查询,而不是JOIN.Lindoff——那么这是否意味着我所拥有的是正确的并且可以工作呢?我不知道你拥有什么。仅引用外部from中的表将使用wt.id而不是ps.id。假设子查询始终只返回一行,则查询应该可以工作。我倾向于在dbo.fn_Dateps.date1,ps.UploadDate附近加一个max或min,以防万一。