如何从条件库中的一个临时表复制到另一个临时表,然后如何从该粘贴的表中检索?
我尝试过如下,但是从两个条件中检索我想要粘贴的表数据选择,这是我从未得到的。
alter procedure Get_LoginLogutDetails
as
begin
DECLARE @cmd AS NVARCHAR(max)
DECLARE @cmdOriginal AS NVARCHAR(max)
CREATE TABLE #result
(
LoggedOutTime datetime
)
CREATE TABLE #OriginalResult
(
Duration varchar(100)
)
declare @loggedOutTime varchar(20)
SET @cmd ='select LoggedOutTime from LastLoggedInDetails'
Insert into #result
EXEC(@cmd)
declare result_cursor cursor for
SELECT LoggedOutTime
from #result
where LoggedOutTime is null
OPEN result_cursor
FETCH NEXT FROM result_cursor INTO @loggedOutTime
WHILE @@FETCH_STATUS = 0
BEGIN
if(@loggedOutTime is null)
begin
select 'Running..'
Insert into #OriginalResult
EXEC(@cmd)
end
else if(@loggedOutTime is not null)
begin
select LoggedOutTime from #result
Insert into #OriginalResult
EXEC(@cmd)
end
FETCH NEXT FROM result_cursor INTO @loggedOutTime
END
select * from #OriginalResult
end
答案 0 :(得分:1)
好的,所以我阅读了你的脚本,并试图找出你想要做的事情。看起来你有可能在有时间时尝试获取LoggedOutTimes,如果没有注销时间,你希望将结果“Running ...”插入到临时表中。
SELECT ISNULL(LoggedOutTime, 'Running...')
INTO #OriginalResult
FROM LastLoggedInDetails
这为您提供了具有上述场景的临时表。不确定LoggedOutTime的数据类型,您可能需要将其转换为nvarchar。
你原来的问题没有多大意义,你应该尝试重新措辞以获得更准确的帮助。
答案 1 :(得分:0)
对我所有的解释都不好意思,但我终于满足了我的需要。 我想要像nelow。
select LastLoggedInDetails.LoggedInTime,case
when LastLoggedInDetails.LoggedOutTime is not null then CONVERT(VARCHAR(100),DATEDIFF (hour,LastLoggedInDetails.LoggedInTime ,LastLoggedInDetails.LoggedOutTime ))+' Hours '+
CONVERT(VARCHAR(100),DATEDIFF (minute,LastLoggedInDetails.LoggedInTime ,LastLoggedInDetails.LoggedOutTime )%60) +' Minutes'
when LastLoggedInDetails.LoggedOutTime is null then 'Running...'
end
from dbo.LastLoggedInDetails