我知道这可能是个不寻常的要求。我正试图创建一份合规报告。
需要更改以下查询以验证某些返回的项。返回的值要么符合,要么不符合(显示版本3),或者丢失。我试过使用case语句,但是,如果缺少项,则不会返回任何内容。
SELECT TOP (100) PERCENT
dbo.v_Add_Remove_Programs.DisplayName0,
dbo.v_Add_Remove_Programs.Version0
FROM
dbo.v_Add_Remove_Programs
INNER JOIN
dbo.v_R_System ON dbo.v_Add_Remove_Programs.ResourceID = dbo.v_R_System.ResourceID
WHERE
(dbo.v_R_System.Netbios_Name0 LIKE 'isa-lab0277')
AND (NOT (dbo.v_Add_Remove_Programs.Version0 = 'NULL'))
ORDER BY
dbo.v_Add_Remove_Programs.DisplayName0逻辑
返回X和Y的值。如果项目是否符合,返回(X=Y或X != Y)
示例解
凯文要求的逻辑
如果X=Y,则标记符合;如果Y缺失,则标记它丢失和不符合;如果Y是错误的版本,则返回值并标记它不符合
返回X和Y的值。如果项目是否符合,返回(X=Y或X != Y)
示例解决方案报告
STD Software Configuration System Configuration Items Status
Active Client 1.0.123 Active Client 1.0.123 Compliant
Adobe Flash Player 10.4.6.1 Adobe Flash Player 10.3.0.1 Not Compliant
Adobe Reader 1.9.123 none Missing发布于 2013-10-03 20:52:50
如果您确实在测试缺少的值,则需要更改空比较的条件。
SELECT TOP (100) PERCENT
dbo.v_Add_Remove_Programs.DisplayName0,
dbo.v_Add_Remove_Programs.Version0
FROM
dbo.v_Add_Remove_Programs
INNER JOIN
dbo.v_R_System ON dbo.v_Add_Remove_Programs.ResourceID = dbo.v_R_System.ResourceID
WHERE
(dbo.v_R_System.Netbios_Name0 LIKE 'isa-lab0277')
AND (NOT (dbo.v_Add_Remove_Programs.Version0 IS NULL)) --<<<<<<<<< Look here
ORDER BY
dbo.v_Add_Remove_Programs.DisplayName0https://stackoverflow.com/questions/18643553
复制相似问题