SQL Server 2008 R2を使用する毎日テーブルに格納されているユーザーから最後のログイン時刻を取得しようとしています。MAXレコードからDATEDIFFをカウントする
以下のクエリは、ユーザごとにその情報をプル:
SELECT
[Login_name],
MAX([last_login_time]) as Last_login_date,
[server_instance]
FROM
[dbo].[User_Login_Audit]
WHERE
Login_name NOT IN ('NT AUTHORITY\SYSTEM', 'sa','')
GROUP BY
Login_name, server_instance
次のような結果は次のとおりです。
User_name | 2016-07-28 | Server/Instance
私が欲しいものはそのGETDATE()
の間の日数を追加することができることです最後の列として追加してください。
私は次のコードを使用しようとしましたが、記録された毎日の値を返しますまたはそのユーザー。私が何か明白なものを見逃していると確信しているので、どんな助けもありがたい。
SELECT
[Login_name],
MAX([last_login_time]) AS Last_login_date,
[server_instance],
DATEDIFF(day, getdate(), last_login_time) AS Days
FROM
[dbo].[User_Login_Audit]
WHERE
Login_name NOT IN ('NT AUTHORITY\SYSTEM', 'sa','')
GROUP BY
Login_name, server_instance, last_login_time
あなたは、私はエラーを取得することをできるだけ早く私がそうであるようにセクション – Mat
により、グループから_last_login_time_を削除する必要があります。メッセージ8120、レベル16、状態を1、Line 4 カラム 'dbo.User_Login_Audit.last_login_time'は、集約関数またはGROUP BY句に含まれていないため、選択リストでは無効です。 – bwilliamson