2012-03-07 10 views
0

this SQLFiddleで、実際に作業しているクエリが見つかります。私は自分の電話機にログインしているユーザーからのイベントを保持するデータベーステーブルを持っています。特定の条件が指定された最後のイベントを選択する

私は基本的に、エージェントが事実上「ログに記録」されている場合にのみエージェントを選択しますが、ロギングイベント内では、話しているか管理中であるなどのステータスがあります。

私が達成したいのは、ログに記録されているエージェントのLASTステータスを取得することです。

ログアウトしてからステータスをログに記録することはできません。

答えて

1

これはトリックを行う必要があります。

SELECT a.* 
FROM eventos_centralita a 
LEFT JOIN eventos_centralita b 
    ON b.codAgente = a.codAgente 
    AND b.evento = 'Deslogado' 
    AND b.fechaHora > a.fechaHora 
LEFT JOIN eventos_centralita c 
    ON c.codAgente = a.codAgente 
    AND c.fechaHora > a.fechaHora 
WHERE b.idEvent IS NULL AND c.idEvent IS NULL AND a.evento <> 'Deslogado' GROUP BY a.codAgente; 
+0

おかげチャールズが、最後のステータスが代わりにLogado」の「Administrativo」であるので、それは行6と3を私に戻って与えていないと6と7でなければなりません' –

+0

最新のイベントのみを返すようにクエリを編集しました。私はどこか無駄になっているような気がしますが、私はどこにいるのか分かりません。 – RumpRanger

+0

チャールズありがとう!それは働いています:D –

関連する問題