在条件基础上从一个临时表复制到另一个临时表?

时间:2016-03-02 12:52:13

标签: sql

如何从条件库中的一个临时表复制到另一个临时表,然后如何从该粘贴的表中检索?

我尝试过如下,但是从两个条件中检索我想要粘贴的表数据选择,这是我从未得到的。

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 

2 个答案:

答案 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