私は3つのテーブルを持つデシベル持っているそれぞれの結果の1行を取得しますSQLの使用MAXまたはTOPにのみ
- ユーザーユーザーID、ユーザー名
- コンピュータを ComputerID、コンピューター
- ログオン LogonDate、ユーザーID、コンピュータID
次のクエリを使用して、各コンピュータの最新のユーザー名とログオン日時を取得しようとしています。
SELECT MAX(LogonDate) AS LogonDate, ComputerName, Username
FROM Users u, Computers c, Logons l
WHERE u.UserID = l.UserID
AND c.ComputerID = l.ComputerID
GROUP BY ComputerName, Username
ORDER BY ComputerName
当然のことながら、それは各ユーザーの最新のログオンを提示します。私は最新のエントリに制限したいと思います。
ヘルプ正しいJOIN
構文を学び、この
SELECT (select MAX(l.LogonDate) from users z where z.UserID = u.UserId) AS LogonDate, c.ComputerName, u.Username
FROM Users u, Computers c, Logons l
WHERE u.UserID = l.UserID AND c.ComputerID = l.ComputerID
GROUP BY c.ComputerName, u.Username
ORDER BY c.ComputerName
タグを使用しているデータベースとあなたの質問。 –
[古いスタイルのジョインを使って蹴るのが悪い](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - ANSI - ** 92 ** SQL標準(* ** 20年以上前**)のold * style *カンマ区切りのテーブル*スタイルのリストが*適切な* ANSI 'JOIN'構文に置き換えられましたその使用はお勧めしません –