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,以防万一。