0
我有一个SQL查询比较2个表来检查登录时间和日程表是否关闭,以便用int值填充第三个表。我得到它的工作,但我试图添加其他变化到选择命令。SQL SELECT,CASE,BETWEEN INTO语句
这里是工作的代码:
DECLARE @sqlSelect varchar(max)
SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 else 1 end as LoginInc into Integers FROM loginlogout JOIN Schedules$ on loginlogout.[Agent Name] = Schedules$.AgentName'
EXEC(@sqlSelect)
GO
什么我想补充的是这样的:
DECLARE @six varchar(max)
DECLARE @sixo varchar(max)
DECLARE @sixnerdy varchar(max)
DECLARE @sqlSelect varchar(max)
SET @six = '[6:00AM]'
SET @sixo = '[6:05AM]'
SET @sixnerdy = '[6:30AM]'
SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 when [Login Time] BETWEEN '+ @sixo +' and '+ @sixnerdy +' then 1 else 1 end as LoginInc into Integers FROM loginlogout JOIN Schedules$ on loginlogout.[Agent Name] = Schedules$.AgentName'
EXEC(@sqlSelect)
GO
当运行这个查询,我得到错误味精207无效列名。因此我尝试过:
SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 when [Login Time] BETWEEN '+ @sixo +' and '+ @sixnerdy +' then 1 else 1 end as LoginInc into Integers'
删除FROM语句。这表示该命令运行,但整数表永远不会创建。这可以在1个SQL命令中完成吗?此外,我还需要添加约4个以上的BETWEEN查询来加强此命令。
'6:00 AM'是一个奇怪的字段名称。这真的是这个领域的名字吗? –
@ConradFrix,'6:00 AM'不用作字段名称,它在'between'之间使用' – HoneyBadger
@HoneyBadger注意在6:00 AM前后的'[]'。由于它连接到SQL字符串,我希望它被视为字段名称而不是值 –