你好,在一个存储过程中,我创建了一个temp-table,其中包含一个select,它执行一个函数来返回日期重复。</ p>
我的临时表的创建如下:
float lux = event.values[0];
创建此临时表后,我使用此临时表执行查询,如下所示:
BEGIN
insert into #tmp_recu
SELECT * FROM dbo.CrontabSchedule('0 0 * * *', '2017-2-1', '2017-2-28')
END
问题是我想通过任务表中的字段(名为recurrence的字段)在我的临时表创建中重新设置'0 0 * * *',那么我怎么能这样做呢?
谢谢!
修改
实际上,在我的查询中,我想调用函数'CrontabSchedule'并在'mission'表中输入一个字段,如下所示:
Select * from mission
Cross Join #temp_recu
当我像这样调用函数时它起作用
select * from mission m
cross join select * from dbo.CronTabSchedule(mission.reccurence,'2017-1-1','2017-1-31')
但是当我用'Mission.recurrence'(包含每个任务的重复模式)替换'0 0 * * *'时,我有一个错误:
无法绑定多部分标识符“Mission.recurrence”。
CrontabSchedule代码:
select * from dbo.CronTabSchedule('0 0 * * *','2017-1-1','2017-1-31')
该函数返回一个表,其中一列名为“Occurence”,并包含à日期列表。
答案 0 :(得分:1)
这里的模糊问题,但我假设CronTabSchedule必须是一个表值函数(希望是内联版本,但这是另一个主题)。如果我是正确的,你可以很容易地使用CROSS APPLY。
select *
from mission m
cross apply dbo.CronTabSchedule(m.reccurence,'2017-1-1','2017-1-31') cts