如何使用select语句处理SQL 2008 r2中的丢失数据?

时间:2019-05-21 09:58:46

标签: sql-server-2008-r2

对于每个成功的登录,都有一个“已登录”条目;对于每个成功的注销,都有一个“已注销”条目,但是如果用户关闭浏览器,则 未捕获“已注销”事件,这是可以接受的,但要解决此问题,我想要一个虚拟条目,该条目显示同一用户的“已注销” 有什么办法可以在2008 r2中使用sql查询来处理它?<​​/ p>

    CREATE TABLE [dbo].[ActivityLog](
[UserID] [nvarchar](10) NOT NULL,
[LogDate] [datetime] NOT NULL,
[Activity] [varchar](500) NULL,

    insert into [ActivityLog] values ('Maker-CO','2019-05-20 11:57:42.500','Logged-in')
    insert into [ActivityLog] values ('Maker-CO','2019-05-20 12:39:06.203','Logged-out')
    insert into [ActivityLog] values ('Maker-CO','2019-05-20 12:41:48.537','Logged-in')
    insert into [ActivityLog] values ('Maker-CO','2019-05-20 12:42:32.467','Logged-in')

下面是我的选择命令

    select userid,Logdate,activity from activitylog order by logdate

但是我想要输出为

    userid      Logdate                 activity 
    maker-co    2019-05-20 11:57:42.500    Logged-in
    maker-co    2019-05-20 12:39:06.203    Logged-out
    maker-co    2019-05-20 12:41:48.537    Logged-in
    maker-co    2019-05-20 12:41:48.537    Logged-out
    maker-co    2019-05-20 12:42:32.467    Logged-in

1 个答案:

答案 0 :(得分:0)

您可以尝试使用JS。

   window.onunload = function () {
        //logout code or AJAX func. here...
    }

如果要使用服务器端功能注销,则应使用ajax

$.ajax({
    type: "post",
    url: <<PAGE_URL>>/<<FUNC_NAME>>,
    contentType: "application/json; charset=utf-8",
    data: <<if you use parameter>>,
    dataType: "json",
    success: function(result) 
    {
        //your code 

    },
    error: function(result) 
    {
        alert('error occured');
        alert(result.responseText);
        window.location.href="XYZ.aspx?Exception="+result.responseText;
    },
    async: true
});