I'm trying to find Devices for which:
- "PatchManagementPremium" doesn't exist in the column instancename
- "RemoteControl" doesn't exist in the column instancename
- Both entries do not exist in the column instancename
But I want to exclude all the results where both entries are true, which I did not manage to do until now. No matter what I tried, when 1 AND 2 are true then it acts as it was false...
SELECT DISTINCT
Devices.DeviceName
FROM
Devices
LEFT OUTER JOIN
CustInv_ObjType_6121 BCMModulesVersions ON Devices.DeviceID = BCMModulesVersions.DeviceID
LEFT OUTER JOIN
InventoryIntegrationData InventoryUpdate ON Devices.DeviceID = InventoryUpdate.DeviceID
WHERE
((BCMModulesVersions.InstanceName NOT IN ('PatchManagementPremium', 'RemoteControl'))
AND (InventoryUpdate.IntegrationDate IS NOT NULL)
AND Devices.TopologyType IN ('_DB_DEVTYPE_CLIENT_', '_DB_DEVTYPE_RELAY_'))
ORDER BY
Devices.DeviceName ASC;
To be clearer: I support an application on which several modules can be loaded or not. This information is stored in the database. When a module is loaded you will find its name (remotecontrol, patchmanagementpremium etc) in the column instancename for that device.
I want to list all devices on which the module remotecontrol is not loaded, or the module patch is not loaded or both modules are not loaded.
If both entries are loaded the devicename should not be in the output of the query.