我有两个类似的sql语句,它们返回在其上运行特定文件名的计算机的名称,例如: OUTLOOK.EXE和EXCEL.EXE它们都单独返回计算机名称,但我想看到同时运行这两个计算机的计算机。我有一个查询,但它是时间密集的,运行,运行和运行。任何想法如何在更简化的版本中简化这两个查询。这是一个查询的例子,因为它们是相同的,我只是展示了一个。
select CompName, FileName, FileDescription, FileVersion, FileSize, FileModifiedDate, FilePath
From Table
join Table on SYRID = SFID
Where FileName LIKE 'OUTLOOK.EXE' AND SF.FileVersion LIKE '14.%' AND FilePath LIKE 'C:\Program Files%'
ORDER BY CompName
为了保护隐私,我重新命名了一切,但是查询的开玩笑就在那里。我有第二个只是一个不同的文件名。任何建议都会很棒。
答案 0 :(得分:1)
select compname from
(
select CompName
From Table
Where ( FileName = 'OUTLOOK.EXE' AND SF.FileVersion LIKE '14.%' )
OR ( FileName = 'EXCEL.EXE' AND SF.FileVersion LIKE '12.%' )
AND FilePath LIKE 'C:\Program Files%'
)
having count(*) > 1
group by compname
ORDER BY CompName