私はSSRSレポートを作成していますが、私が思っているレコードを組み込みたいと思っていますが、うまくいけば誰かが間違っていると分かるかもしれません。私はそれを回避する方法を見つけようとしていましたが、正直なところSQLに精通していません。クエリは、具体的には、win7エンタープライズではなく、オフィス2013を持たないマシンレコードのSCCM 2012 DBからのデータを取得することです。問題点私は、SoftwareFileテーブルにoutlook.exeのレコードがない特定のマシンであるため、結果セットには表示されません。私は、たとえoutlook.exeファイルが存在しなくても、それを表示する方法を見つけたいと思います。存在しない場合のSQLクエリ
ここに私が働きかけようとしていた現在のクエリがありますが、最後の行を削除したときに表示されるマシンはまだ表示されません。私はあなたが外をしたいと思います
SELECT Distinguished_Name0, Full_Domain_Name0, User_Name0, Netbios_Name0, OS.Caption0, IP_Addresses0, SystemType0, Model0, SYS.ResourceID,
[Office2013] = CASE
WHEN [FileName] = 'outlook.exe' and left(FileVersion, 2) = '15' THEN 'TRUE'
WHEN Not Exists (Select * from v_GS_SoftwareFile where SF.ResourceID = Sys.ResourceID and [FileName] = 'outlook.exe') THEN 'FALSE'
ELSE 'FALSE'
END
FROM v_R_System SYS
INNER JOIN v_GS_OPERATING_SYSTEM OS
ON SYS.ResourceID = OS.ResourceID
INNER JOIN v_RA_System_IPAddresses IP
ON SYS.ResourceID = IP.ResourceID
INNER JOIN v_GS_COMPUTER_SYSTEM CO
ON SYS.ResourceID = CO.ResourceID
INNER JOIN v_GS_SoftwareFile SF
ON SYS.ResourceID = SF.ResourceID
WHERE sys.Distinguished_Name0 LIKE '%DC=local'
AND sys.Distinguished_Name0 NOT LIKE '%Server%'
AND IP_Addresses0 LIKE '10.0.0.%'
AND Model0 LIKE '%%'
AND OS.Caption0 <> 'Microsoft Windows 7 Enterprise'
AND (SF.[FileName] = 'outlook.exe'
OR NOT EXISTS (Select * from v_GS_SoftwareFile where SF.ResourceID = SYS.ResourceID and [FileName] = 'outlook.exe'))
これをスペルナップしていただきありがとうございます。私は、これがどのように結果セットを変更するのかを試してみる。目標は、outlook.exeのバージョンが定義されたバージョンと等しい場合のブール列を表示することですが、存在しない場合も表示します。現在存在しないときには表示に失敗します。 – ssaviers