daily statistics ( KPI ) - cron job?
Hello
For performance statistic purposes (KPI), I would like to run some SQL statements in one (or more) queries in order to build me a table with history data like
- backlog per end of the day
- number of incidents created on one day
- number of service requests on one day
- ...
History data with number of <request type> per day is easy; I can get this history directly via SD+ reports.
What about my backlog statistic? How could I generate a history statistic on the backlog per day?
Should I do a daily SQL (see backlog sql below), run it via SQL cron job and gather the data in a dedicated table?
Any (better) idea?
Thanks a lot for any help
best regards, Marc
backlog:
SELECT count(*) FROM WorkOrder wo LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID LEFT JOIN StatusDefinition std ON wos.STATUSID=std.STATUSID WHERE (((std.STATUSNAME != 'Closed') OR (std.STATUSNAME IS NULL)) AND (((wo.CREATEDTIME >= <from_today>) AND ((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL))) AND ((wo.CREATEDTIME <= <to_today>) AND (((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL)) AND (wo.CREATEDTIME != -1))))) AND wo.ISPARENT=1
created incident:
SELECT count(*) FROM WorkOrder wo LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID LEFT JOIN RequestTypeDefinition rtdef ON wos.REQUESTTYPEID=rtdef.REQUESTTYPEID WHERE ((rtdef.NAME = 'Incident') AND (((wo.CREATEDTIME >= <from_today>) AND ((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL))) AND ((wo.CREATEDTIME <= <to_today>) AND (((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL)) AND (wo.CREATEDTIME != -1))))) AND wo.ISPARENT=1
Service Request
SELECT count(*) FROM WorkOrder wo LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID LEFT JOIN RequestTypeDefinition rtdef ON wos.REQUESTTYPEID=rtdef.REQUESTTYPEID WHERE ((rtdef.NAME = 'Service Request') AND (((wo.CREATEDTIME >= <from_today>) AND ((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL))) AND ((wo.CREATEDTIME <= <to_today>) AND (((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL)) AND (wo.CREATEDTIME != -1))))) AND wo.ISPARENT=1
Request For Information
SELECT count(*) FROM WorkOrder wo LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID LEFT JOIN RequestTypeDefinition rtdef ON wos.REQUESTTYPEID=rtdef.REQUESTTYPEID WHERE ((rtdef.NAME = 'Request For Information') AND (((wo.CREATEDTIME >= <from_today>) AND ((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL))) AND ((wo.CREATEDTIME <= <to_today>) AND (((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL)) AND (wo.CREATEDTIME != -1))))) AND wo.ISPARENT=1
Order Request
SELECT count(*) FROM WorkOrder wo LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID LEFT JOIN RequestTypeDefinition rtdef ON wos.REQUESTTYPEID=rtdef.REQUESTTYPEID WHERE ((rtdef.NAME = 'Order Request') AND (((wo.CREATEDTIME >= <from_today>) AND ((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL))) AND ((wo.CREATEDTIME <= <to_today>) AND (((wo.CREATEDTIME != 0) AND (wo.CREATEDTIME IS NOT NULL)) AND (wo.CREATEDTIME != -1))))) AND wo.ISPARENT=1
New to ADSelfService Plus?