Service Desk Plus导出技术员上一个月的登录历史(登录频率)

Service Desk Plus导出技术员上一个月的登录历史(登录频率)

客户要求:
如果我想查SDP技术员账户登陆记录,有办法吗?

所有登录记录语句可以使用以下语句:
PGSQL:
SELECT AaaUser.FIRST_NAME "Technician",
       MAX(AaaLogin.NAME) "LoginName",
       MAX(AaaContactInfo.EMAILID) "Email",
       MAX(AaaAccSession.USER_HOST) "IP Address",
       longtodate(MAX(AaaAccSession.OPENTIME)) "Last Logged In Time" FROM AaaUser
INNER JOIN SDUser ON AaaUser.USER_ID=SDUser.USERID
INNER JOIN HelpDeskCrew ON SDUser.USERID=HelpDeskCrew.TECHNICIANID
LEFT JOIN AaaLogin ON AaaUser.USER_ID=AaaLogin.USER_ID
INNER JOIN AaaAccount ON AaaAccount.login_id=AaaLogin.LOGIN_ID
INNER JOIN AaaAccSession ON AaaAccount.ACCOUNT_ID = AaaAccSession.ACCOUNT_ID
LEFT JOIN AaaUserContactInfo ON AaaUser.USER_ID=AaaUserContactInfo.USER_ID
LEFT JOIN AaaContactInfo ON AaaUserContactInfo.CONTACTINFO_ID=AaaContactInfo.CONTACTINFO_ID
WHERE SDUser.STATUS = 'ACTIVE'
GROUP BY AaaUser.FIRST_NAME

客户运行后进一步提出需求:
可不可以查过去一个月的登录记录?
原因:客户想确认一个项目上15个技术员是否必须

语句经研发及我在本地的验证,可以导出上一个月的登录记录。

PGSQL:
select ac.ACCOUNT_ID as "Account Id", au.FIRST_NAME as "User Name", LONGTODATE(acs.OPENTIME) as "Login Time", LONGTODATE(acs.OPENTIME) as "Login Time",  LONGTODATE(acs.CLOSETIME) as "Logout Time", acs.USER_HOST as "IP Address", al.NAME as "Login Name", al.DOMAINNAME as "Domain Name", aci.EMAILID as "Email address", dd.DEPTNAME as "Department Name", LONGTODATE(au.CREATEDTIME) as "Account Created Time", repuser.FIRST_NAME as "Reporting To", sd.ISVIPUSER as "IsVipUser" from aaauser au left join AaaUserContactInfo auci on au.USER_ID=auci.USER_ID left join AaaContactInfo aci on auci.CONTACTINFO_ID = aci.CONTACTINFO_ID inner join sduser sd on au.USER_ID=sd.USERID left join UserDepartment ud on sd.USERID = ud.USERID left join DepartmentDefinition dd on ud.DEPTID=dd.DEPTID inner join portalusers pu on sd.USERID=pu.USERID inner join aaalogin al on au.USER_ID = al.USER_ID inner join aaaaccount ac on al.LOGIN_ID = ac.LOGIN_ID left join aaaaccsession acs on ac.ACCOUNT_ID = acs.ACCOUNT_ID left join aaauser repuser on repuser.USER_ID = sd.REPORTINGTO where pu.STATUS = 'ACTIVE' and acs.CLOSETIME > 0 and acs.OPENTIME between <from_lastmonth> and <to_lastmonth> order by acs.OPENTIME;