We are requesting guidance on how to historically identify maintenance schedules that have impacted a specific device on a particular date.
Specifically, we need to determine the following details for a given device and date:
We attempted to retrieve this information using an API but were unsuccessful.
Guidance
SELECT DISTINCT
ms.SCHEDULE_NAME,
ms.DESCRIPTION,
msm.SCHEDULE_ID,
mw.START_TIME,
mw.END_TIME,
cs.name AS dev_name,
cs.ip,
cs.origin,
acc.nimbus_user AS Creator_Account_Name, -- Human-readable name
'Active' AS Status
FROM CM_COMPUTER_SYSTEM cs
INNER JOIN MAINTENANCE_SCHEDULE_MEMBERS msm ON cs.cs_id = msm.CS_ID
INNER JOIN MAINTENANCE_WINDOW mw ON msm.SCHEDULE_ID = mw.SCHEDULE_ID
INNER JOIN MAINTENANCE_SCHEDULE ms ON msm.SCHEDULE_ID = ms.SCHEDULE_ID
LEFT JOIN CM_ACCOUNT acc ON ms.ACCOUNT_ID = acc.account_id -- Resolving Account Name
WHERE mw.END_TIME >= GETDATE()
UNION ALL
SELECT DISTINCT
ms.SCHEDULE_NAME,
ms.DESCRIPTION,
msm.SCHEDULE_ID,
mwh.START_TIME,
mwh.END_TIME,
cs.name AS dev_name,
cs.ip,
cs.origin,
acc.nimbus_user AS Creator_Account_Name,
'Historical' AS Status
FROM CM_COMPUTER_SYSTEM cs
INNER JOIN MAINTENANCE_SCHEDULE_MEMBERS msm ON cs.cs_id = msm.CS_ID
INNER JOIN MAINTENANCE_WINDOW_HISTORY mwh ON msm.SCHEDULE_ID = mwh.SCHEDULE_ID
INNER JOIN MAINTENANCE_SCHEDULE ms ON msm.SCHEDULE_ID = ms.SCHEDULE_ID
LEFT JOIN CM_ACCOUNT acc ON ms.ACCOUNT_ID = acc.account_id
WHERE mwh.END_TIME >= GETDATE() - 30
ORDER BY START_TIME DESC;