次のデバイスを探しています。
- インスタンス名列に「PatchManagementPremium」が存在しない
- 「RemoteControl」が列インスタンス名に存在しません
- 両方のエントリが列 instancename に存在しません
しかし、両方のエントリが真であるすべての結果を除外したいのですが、これまではできませんでした。何を試しても、1 と 2 が true の場合、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;
より明確にするために:私は、いくつかのモジュールをロードできるかどうかに関係なく、アプリケーションをサポートしています。この情報はデータベースに保存されます。モジュールがロードされると、そのデバイスのインスタンス名列にその名前 (remotecontrol、patchmanagementpremium など) が表示されます。
モジュール remotecontrol がロードされていないか、モジュール パッチがロードされていないか、両方のモジュールがロードされていないすべてのデバイスをリストしたいと考えています。
両方のエントリがロードされている場合、devicename はクエリの出力に含まれません。