我试图找到设备,需要:WHERE <Cond> OR <Cond>但不能同时
- “PatchManagementPremium”并不在列INSTANCENAME存在
- “REMOTECONTROL”并不在列存在INSTANCENAME
- 这两个条目不列INSTANCENAME
存在,但我要排除所有地方两个条目是真实的结果,我做到了不是M到目前为止要做的事情。不管是什么我想,当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;
更清晰:我支持这几个模块可以被加载与否的应用程序。这些信息存储在数据库中。当一个模块被加载时,您将在该设备的列实例名称中找到它的名称(remotecontrol,patchmanagementpremium等)。
我想列出未装载模块remotecontrol的所有设备,或未装载模块补丁或两个模块都未加载。
如果两个条目均已加载,则devicename不应位于查询的输出中。
嗨,因为你在这里开发SQL - 你的问题规范有点令人困惑 - 你的子弹点列表是MANAGEResque - 它不告诉我们你是否想要一个,一些或所有的条件 - 有最好的猜测可用 - 遗憾地告诉你关于它 – Cato