Forum Moderators: coopster
# Time: 110707 13:11:37
# User@Host: freeradius[freeradius] @ localhost []
# Query_time: 7 Lock_time: 0 Rows_sent: 0 Rows_examined: 26556600
SET timestamp=1310008297;
SELECT radlookupnasnew.nasid as nasid,radacct.Username as UserName,
Min(radacct.AcctStartTime) AS FirstLogin,
Max(radacct.AcctStartTime) AS LastLogin,
Sum(radacct.AcctInputOctets) AS Upload,
Sum(radacct.AcctOutputOctets)AS Download,
Sum(radacct.AcctInputOctets) + Sum(radacct.AcctOutputOctets)AS TotalData,
count(*) as NumLogins,
case when min(AcctStopTime) = '0000-00-00 00:00:00' then 'Yes' else 'No' end as online,
(select case when radgroupcheck.value is null then 0 else radgroupcheck.value -
case when min(ra2.AcctStartTime) is null then 0 else sum(ra2.AcctSessionTime) end end from radacct ra2 where ra2.username = radacct.username) as 'SecondsRemaining',
(select case when (min(ra.AcctStartTime) is null or sum(ra.AcctSessionTime) < radgroupcheck.value) then 'No' else 'Yes' end from radacct ra where ra.username = radacct.username) as 'Time_Used_Up',
case when (radchecknew.value is null or radchecknew.value > unix_timestamp(now())) then 'No' else 'Yes' end as 'Expired',
case when (radchecknew.value is null or radchecknew.value > unix_timestamp(now())) then (radchecknew.value - unix_timestamp(now())) else 'Yes' end as 'SecondsRemainingnew'
FROM radacct
LEFT OUTER JOIN (SELECT DISTINCT radlookupnas.nasid, radlookupnas.user FROM radlookupnas) as radlookupnasnew
ON radacct.Username = radlookupnasnew.user
left outer join (SELECT radcheck.UserName, radcheck.Attribute, radcheck.Value from radcheck group by radcheck.username, radcheck.attribute) radgroupcheck
ON radgroupcheck.username = radacct.username
AND radgroupcheck.attribute='Max-All-Session'
LEFT OUTER JOIN (SELECT radcheck.UserName, radcheck.Attribute, radcheck.Value from radcheck group by radcheck.username, radcheck.attribute) as radchecknew
ON radacct.Username = radchecknew.UserName
WHERE radchecknew.attribute='Expiration'
GROUP BY radacct.Username
HAVING radlookupnasnew.nasid='test' and radacct.Username = '' order by max(radacct.AcctStartTime) DESC; $query = "SELECT radlookupnasnew.nasid as nasid,radacct.Username as UserName,
Min(radacct.AcctStartTime) AS FirstLogin,
Max(radacct.AcctStartTime) AS LastLogin,
Sum(radacct.AcctInputOctets) AS Upload,
Sum(radacct.AcctOutputOctets)AS Download,
Sum(radacct.AcctInputOctets) + Sum(radacct.AcctOutputOctets)AS TotalData,
count(*) as NumLogins,
case when min(AcctStopTime) = '0000-00-00 00:00:00' then 'Yes' else 'No' end as online,
(select case when radgroupcheck.value is null then 0 else radgroupcheck.value -
case when min(ra2.AcctStartTime) is null then 0 else sum(ra2.AcctSessionTime) end end from radacct ra2 where ra2.username = radacct.username) as 'SecondsRemaining',
(select case when (min(ra.AcctStartTime) is null or sum(ra.AcctSessionTime) < radgroupcheck.value) then 'No' else 'Yes' end from radacct ra where ra.username = radacct.username) as 'Time_Used_Up',
case when (radchecknew.value is null or radchecknew.value > unix_timestamp(now())) then 'No' else 'Yes' end as 'Expired',
case when (radchecknew.value is null or radchecknew.value > unix_timestamp(now())) then (radchecknew.value - unix_timestamp(now())) else 'Yes' end as 'SecondsRemainingnew'
FROM radacct
LEFT OUTER JOIN (SELECT DISTINCT radlookupnas.nasid, radlookupnas.user FROM radlookupnas) as radlookupnasnew
ON radacct.Username = radlookupnasnew.user
left outer join (SELECT radcheck.UserName, radcheck.Attribute, radcheck.Value from radcheck group by radcheck.username, radcheck.attribute) radgroupcheck
ON radgroupcheck.username = radacct.username
AND radgroupcheck.attribute='Max-All-Session'
LEFT OUTER JOIN (SELECT radcheck.UserName, radcheck.Attribute, radcheck.Value from radcheck group by radcheck.username, radcheck.attribute) as radchecknew
ON radacct.Username = radchecknew.UserName
WHERE radchecknew.attribute='Expiration'
GROUP BY radacct.Username
HAVING radlookupnasnew.nasid='$snasid' and radacct.Username = '$suser' order by max(radacct.AcctStartTime) DESC
"
WHERE radchecknew.attribute='Expiration'
GROUP BY radacct.Username
HAVING radlookupnasnew.nasid='$snasid' and radacct.Username = '$suser'
WHERE radchecknew.attribute='Expiration' AND radlookupnasnew.nasid='$snasid' and radacct.Username = '$suser'
GROUP BY radacct.Username