2016-07-19 6 views
0

3列を返すプロシージャを作成したい、元のテーブルの考え方に最後の列が存在しない、それは時間差です。LastLoginと現在の時間が、私はそれを書く方法を知らない。これまでのところ、これは私が持っているものですが、これがどうなるかはわかりません。1つの余分な列を持つ一時テーブルに挿入する方法

ALTER PROCEDURE sp_W_getSesionSupervisor 
@Plaza varchar(255), 
@UserLevel int 

DECLARE @tempSupervisor TABLE (
    UserName varchar(255), 
    LastLogin DATETIMEOFFSET, 
    tTranscurrido DATETIMEOFFSET 
); 
BEGIN 
    INSERT INTO @tempSupervisor (UserName, LastLogin) 
    SELECT UserName, LastLogin FROM UsersAdmin 
    WHERE Plaza = @Plaza AND UserLevel = @UserLevel 

    UPDATE @tempSupervisor 
    SET tTranscurrido = DIFFERENCE(LastLogin, DateTimeOffset) 

    SELECT * FROM @tempSupervisor 
END 

答えて

1

同じ結果が、次のような単一のSELECT文によって返されます。手続きを取る必要がありますか?

SELECTユーザ名、LastLogin、プラザ= @Plaza ANDユーザレベル= @UserLevel

@Plazaと@UserLevelがクエリのパラメータであろうUsersAdmin との差(LastLogin、のDateTimeOffset) 。これらが必須でない場合は、パラメータをスキップできます。

+0

私は、選択の途中で操作を書くことができるかどうかわかりませんでした...差異()の後ろに "AS tTranscurrido"と書かなければならないと思いますか?そして、はい、実際には手続きに入っていなければなりませんが、この回答が間違いなく解決します。私はこの公式をするために5分待たなければならない。 – dreami

関連する問題