我正在尝试查找以下设备:
- 列 instancename 中不存在“PatchManagementPremium”
- 列 instancename 中不存在“RemoteControl”
- 列 instancename 中不存在这两个条目
但是我想排除两个条目都为真的所有结果,直到现在我才设法做到这一点。无论我尝试什么,当 1 和 2 为真时,它都表现为假...
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;
更清楚一点:我支持一个可以加载或不加载多个模块的应用程序。此信息存储在数据库中。加载模块后,您将在该设备的实例名称列中找到其名称(远程控制、补丁管理高级版等)。
我想列出所有未加载模块遥控器,或未加载模块补丁或未加载两个模块的设备。
如果两个条目都已加载,则设备名称不应出现在查询的输出中。