From: [EMAIL PROTECTED]
> I have a database (mysql 4.0) with radius log entries for each day, we
> receive emails about Acceptable Use Abuses and must figure out exactly
> who was online with a certain IP address when the abuse occurred. As
> you will see below there are multiple starts and stops for any given
> IP address ...

Not sure what does mysql support but I'd try something like

        SELECT TOP 1 ID, FullName
          FROM the_table
         WHERE "IP address" = ?
           and Date = ?
           and Time <= ?
           and "Record Type" = "Start"
         ORDER BY Time Desc

to get the start and

        SELECT TOP 1 ID, FullName
          FROM the_table
         WHERE "IP address" = ?
           and Date = ?
           and Time >= ?
           and "Record Type" = "Stop"
         ORDER BY Time Asc

to get the end. If the first select doesn't return any row you will 
need to requesry the database with something like this:

        SELECT TOP 1 ID, FullName
          FROM the_table
         WHERE "IP address" = ?
           and Date = DATEADD( day, -1, ?)
           and "Record Type" = "Start"
         ORDER BY Time Desc

if the second doesn't return a row you'd use

        SELECT TOP 1 ID, FullName
          FROM the_table
         WHERE "IP address" = ?
           and Date = DATEADD( day, 1, ?)
           and "Record Type" = "Stop"
         ORDER BY Time Asc

It would be enough to find the start, but I think it's better to find 
both and compare the FullName just to make sure you found the right 
person.

HTH, Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to