I have the following query I created that works fine in SWQL Studio:
SELECT nd.Caption AS NodeName , nd.NodeID , nd.IPAddress , nd.ObjectSubType AS PollingMethod , nd.Description , si.StatusName , CASE WHEN (SELECT MAX(evt1.EventTime) AS TimeStamp FROM Orion.Events evt1 WHERE evt1.EventType = 1 AND evt1.NetObjectID = nd.NodeID) IS NOT NULL THEN (SELECT MAX(evt2.EventTime) AS TimeStamp FROM Orion.Events evt2 WHERE evt2.EventType = 1 AND evt2.NetObjectID = nd.NodeID) WHEN (SELECT MAX(ae1.TimeLoggedUtc) AS TimeStamp FROM Orion.AuditingEvents ae1 WHERE ae1.ActionTypeID = 27 AND ae1.NetObjectID = nd.NodeID) IS NOT NULL THEN (SELECT MAX(ae2.TimeLoggedUtc) AS TimeStamp FROM Orion.AuditingEvents ae2 WHERE ae2.ActionTypeID = 27 AND ae2.NetObjectID = nd.NodeID) ELSE NULL END AS EventTime , CASE WHEN (SELECT evt4.Message AS Message FROM Orion.Events evt4 WHERE evt4.EventTime = (SELECT MAX(evt5.EventTime) AS TimeStamp FROM Orion.Events evt5 WHERE evt5.EventType = 1 AND evt5.NetObjectID = nd.NodeID) AND evt4.EventType = 1 AND evt4.NetObjectID = nd.NodeID ) IS NOT NULL THEN (SELECT evt4.Message AS Message FROM Orion.Events evt4 WHERE evt4.EventTime = (SELECT MAX(evt5.EventTime) AS TimeStamp FROM Orion.Events evt5 WHERE evt5.EventType = 1 AND evt5.NetObjectID = nd.NodeID) AND evt4.EventType = 1 AND evt4.NetObjectID = nd.NodeID ) WHEN (SELECT ae4.AuditEventMessage AS TimeStamp FROM Orion.AuditingEvents ae4 WHERE ae4.TimeLoggedUtc = (SELECT MAX(ae5.TimeLoggedUtc) AS TimeStamp FROM Orion.AuditingEvents ae5 WHERE ae5.ActionTypeID = 27 AND ae5.NetObjectID = nd.NodeID) AND ae4.ActionTypeID = 27 AND ae4.NetObjectID = nd.NodeID ) IS NOT NULL THEN (SELECT ae4.AuditEventMessage AS TimeStamp FROM Orion.AuditingEvents ae4 WHERE ae4.TimeLoggedUtc = (SELECT MAX(ae5.TimeLoggedUtc) AS TimeStamp FROM Orion.AuditingEvents ae5 WHERE ae5.ActionTypeID = 27 AND ae5.NetObjectID = nd.NodeID) AND ae4.ActionTypeID = 27 AND ae4.NetObjectID = nd.NodeID ) ELSE 'Occurred more than 12 months ago.' END AS EventMessage FROM Orion.Nodes nd JOIN Orion.NodesCustomProperties ncp ON ncp.NodeID = nd.NodeID JOIN Orion.StatusInfo si ON si.StatusId = nd.Status WHERE ncp.Active_Node = 'TRUE' AND si.StatusName <> 'UP' AND si.StatusName <> 'External'
However, when I put this into a report with SWQL selected, it fails with "Query is not valid". If I remove both CASE statements, the query in the Report succeeds but if either CASE statement, or both, are in the query, it fails with that same error.
Any ideas?