0

ユーザーがアプリケーションにログインしたときのユーザー データを追跡しようとしています。クエリ (以下) から取得しようとしているのは、過去 30 日以上ログインしていないすべてのユーザーです。ただし、ごく最近ログインしたユーザーを引き込んでいます。ヘルプ?

SELECT UserNM AS [UserID], MAX(EventDT) AS [Last Log-in Date]
FROM dbo.USREventLog
WHERE ABS(DATEDIFF([day], EventDT, GETDATE())) > 30

    AND (UserNM NOT LIKE 'user1') AND (UserNM NOT LIKE 'user2')
    AND (UserNM NOT LIKE 'user3') AND (UserNM NOT LIKE 'user4')

GROUP BY UserNM

ところで、私は彼らの最新の活動記録を最終ログイン日として使用しており、結果に絶対に含めるべきではないユーザーの小さなリストがあります.

4

2 に答える 2

1

これを試して:

SELECT UserNM AS [UserID], MAX(EventDT) AS [Last Log-in Date]
FROM dbo.USREventLog
WHERE EventDT < GETDATE() - 30

    AND (UserNM NOT LIKE 'user1') AND (UserNM NOT LIKE 'user2')
    AND (UserNM NOT LIKE 'user3') AND (UserNM NOT LIKE 'user4')

GROUP BY UserNM, EventDT
于 2013-02-05T18:34:34.007 に答える
0

他の場所で別の解決策を見つけました。以下にクエリを貼り付けます。

SELECT UserID, [Last Login Date] from (
    SELECT UserNM AS [UserID], MAX(EventDT) AS [Last Login Date]
    FROM dbo.TSEventLog 
    WHERE (UserNM NOT LIKE 'user 1') AND (UserNM NOT LIKE 'user2')
    GROUP BY UserNM) x
WHERE ABS(DATEDIFF(day, [Last Login Date], GETDATE())) > 30
ORDER BY [UserID] ASC
于 2013-02-06T22:47:33.793 に答える