SELECT DISTINCT i.guid, i.name FROM dbo.Inv_Installed_File_Details fdJOIN vComputer i ON i.Guid = fd._ResourceGuidwhere fd.path LIKE 'c:\Program files%\Java\%' and fd.name = 'java.exe'Order by i.name
SELECT DISTINCT i.guid, i.nameFROM dbo.Inv_Installed_File_Details fd JOIN vComputer i ON i.Guid = fd._ResourceGuidwhere NOT(fd.path LIKE 'c:\Program files%\Java\%' and fd.name = 'java.exe')Order by i.name
CREATE TABLE dbo.InvInstalledFileDetails( FileDetailsID INT IDENTITY(1,1), FPath VARCHAR(128), PrgName VARCHAR(128));GOINSERT INTO dbo.InvInstalledFileDetails(FPath, PrgName)VALUES ('c:\Program files\Java\Programs','java.exe'), ('c:\Program files\SQL','sqldb.exe');GOSELECT * FROM dbo.InvInstalledFileDetails;GOSELECT * FROM dbo.InvInstalledFileDetails fdWHERE fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe';GOSELECT * FROM dbo.InvInstalledFileDetails fdWHERE NOT(fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe');GODROP TABLE dbo.InvInstalledFileDetails;GO
CREATE TABLE dbo.vComputer( Guid VARCHAR(128), Name VARCHAR(128));GOINSERT INTO dbo.vcomputer(Guid, name)VALUES ('333','PC1'),('222','pc2'),('111','PC3');GOCREATE TABLE dbo.InvInstalledFileDetails( FileDetailsID INT IDENTITY(1,1), ResourceGuid varchar(128), FPath VARCHAR(128), PrgName VARCHAR(128));GOINSERT INTO dbo.InvInstalledFileDetails(ResourceGuid, FPath, PrgName)VALUES ('333','c:\Program files\Java\Programs','java.exe'), ('333','c:\Program files\SQL','sqldb.exe'), ('222','c:\Program files\Java\Programs','java.exe'), ('111','c:\Program files\SQL','sqldb.exe'), ('222','c:\Program files\SQL','sqldb.exe');GOSELECT vc.Guid, vc.Name, fd.FileDetailsID, fd.ResourceGuid, fd.FPath, fd.PrgNameFROM dbo.vComputer vc INNER JOIN dbo.InvInstalledFileDetails fd ON (vc.Guid = fd.ResourceGuid);GOSELECT vc.Guid, vc.Name, fd.FileDetailsID, fd.ResourceGuid, fd.FPath, fd.PrgNameFROM dbo.vComputer vc INNER JOIN dbo.InvInstalledFileDetails fd ON (vc.Guid = fd.ResourceGuid)WHERE fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe';GOSELECT vc.Guid, vc.Name, fd.FileDetailsID, fd.ResourceGuid, fd.FPath, fd.PrgNameFROM dbo.vComputer vc INNER JOIN dbo.InvInstalledFileDetails fd ON (vc.Guid = fd.ResourceGuid)WHERE NOT(fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe');GODROP TABLE dbo.vComputer;DROP TABLE dbo.InvInstalledFileDetails;GO
CREATE TABLE dbo.vComputer( Guid VARCHAR(128), Name VARCHAR(128));GOINSERT INTO dbo.vcomputer(Guid, name)VALUES ('333','PC1'),('222','pc2'),('111','PC3');GOCREATE TABLE dbo.InvInstalledFileDetails( FileDetailsID INT IDENTITY(1,1), ResourceGuid varchar(128), FPath VARCHAR(128), PrgName VARCHAR(128));GOINSERT INTO dbo.InvInstalledFileDetails(ResourceGuid, FPath, PrgName)VALUES ('333','c:\Program files\Java\Programs','java.exe'), ('333','c:\Program files\SQL','sqldb.exe'), ('222','c:\Program files\Java\Programs','java.exe'), ('111','c:\Program files\SQL','sqldb.exe'), ('222','c:\Program files\SQL','sqldb.exe');GOSELECT vc.Guid, vc.Name, fd.FileDetailsID, fd.ResourceGuid, fd.FPath, fd.PrgNameFROM dbo.vComputer vc INNER JOIN dbo.InvInstalledFileDetails fd ON (vc.Guid = fd.ResourceGuid);GOSELECT vc.Guid, vc.Name, fd.FileDetailsID, fd.ResourceGuid, fd.FPath, fd.PrgNameFROM dbo.vComputer vc INNER JOIN dbo.InvInstalledFileDetails fd ON (vc.Guid = fd.ResourceGuid)WHERE fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe';GOSELECT vc.Guid, vc.Name, fd.FileDetailsID, fd.ResourceGuid, fd.FPath, fd.PrgNameFROM dbo.vComputer vc INNER JOIN dbo.InvInstalledFileDetails fd ON (vc.Guid = fd.ResourceGuid)WHERE NOT(fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe');GOSELECT vc.Guid, vc.NameFROM dbo.vComputer vcWHERE NOT EXISTS(SELECT 1 FROM dbo.InvInstalledFileDetails fd WHERE fd.FPath LIKE 'c:\Program files%\Java\%' AND fd.PrgName = 'java.exe' AND vc.Guid = fd.ResourceGuid);GODROP TABLE dbo.vComputer;DROP TABLE dbo.InvInstalledFileDetails;GO