将两个时间密集的SQL查询加入到另一个简化的流程中

时间:2011-10-11 16:00:32

标签: sql

我有两个类似的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

为了保护隐私,我重新命名了一切,但是查询的开玩笑就在那里。我有第二个只是一个不同的文件名。任何建议都会很棒。

1 个答案:

答案 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