Sql server sql server DATEADD中包含sql DATEADD

Sql server sql server DATEADD中包含sql DATEADD,sql-server,tsql,Sql Server,Tsql,我需要做以下工作: Select ProID from Pros ps where ps.ProId = '102-C01-1299' and ConfirmDate > DATEADD(DAY, (select tt.DaysDue from tblTaskTimeline tt where Task = 'TaskInfo') as days,ps.ProgStartDate) 请注意,对于DATEADD函数,我需要动态获取第2个参数。 请注意,tt.Days

我需要做以下工作:

    Select ProID from Pros ps where ps.ProId = '102-C01-1299'
    and  ConfirmDate > DATEADD(DAY, (select tt.DaysDue from tblTaskTimeline tt where Task   = 'TaskInfo') as days,ps.ProgStartDate) 
请注意,对于DATEADD函数,我需要动态获取第2个参数。 请注意,tt.DaysDue返回一个整数值


我收到一条消息说DATEADD需要3个参数。

为什么不先创建一个参数呢

declare @days int
set @days = (select tt.DaysDue from tblTaskTimeline tt where Task   = 'TaskInfo')

Select ProID 
from Pros ps 
where ps.ProId = '102-C01-1299'
    and  ConfirmDate > DATEADD(DAY, @days, ps.ProgStartDate)
如果无法使用参数,则应采用以下方法:

Select ProID 
from Pros ps 
where ps.ProId = '102-C01-1299'
    and  ConfirmDate > DATEADD(DAY, (select tt.DaysDue from tblTaskTimeline tt where Task = 'TaskInfo'), ps.ProgStartDate)

为什么不先创建一个参数呢

declare @days int
set @days = (select tt.DaysDue from tblTaskTimeline tt where Task   = 'TaskInfo')

Select ProID 
from Pros ps 
where ps.ProId = '102-C01-1299'
    and  ConfirmDate > DATEADD(DAY, @days, ps.ProgStartDate)
如果无法使用参数,则应采用以下方法:

Select ProID 
from Pros ps 
where ps.ProId = '102-C01-1299'
    and  ConfirmDate > DATEADD(DAY, (select tt.DaysDue from tblTaskTimeline tt where Task = 'TaskInfo'), ps.ProgStartDate)

删除“as days”应该有效。

删除“as days”应该有效。

因为这是一个更大的sql语句的一部分,在这种情况下,我需要“一次性”完成,因为这是一个更大的sql语句的一部分,在这种情况下,我需要“一次性”完成