Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - [Правка] Отчёт SQL

Ответить
Настройки темы
MSFT SQL Server - [Правка] Отчёт SQL

Старожил


Сообщения: 290
Благодарности: 6

Профиль | Отправить PM | Цитировать


Доброго времени суток всем.
Использую SMS 2007 для развёртывания ПО. Использовал отчёт для поиска всех машин, на которых установлен NOD 32.
Теперь задача стала в обратном — найти все машины, на которых он не установлен.
Вот сам отчёт, который находит машины, на которых есть NOD32

Код: Выделить весь код
SELECT TOP (100) PERCENT dbo.v_R_System.Name0 AS [Computer name], dbo.v_R_System.User_Name0 AS [User name],
dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 AS [ESET NOD32 Antivirus]
FROM dbo.v_R_System INNER JOIN
dbo.v_GS_ADD_REMOVE_PROGRAMS ON dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
WHERE (dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = 'ESET NOD32 Antivirus')
ORDER BY [Computer name]
Что-то подсказывает, что надо изменить параметр WHERE, но не знаю на какой. Подскажите пожалуйста.

Отправлено: 13:48, 19-01-2012

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Здесь поможет другой запрос, точнее 2 подзапроса в одном. Сейчас попробую написать в блокноте и выложить.

Код: Выделить весь код
SELECT TOP (100) PERCENT 
	dbo.v_R_System.Name0 AS [Computer name], 
	dbo.v_R_System.User_Name0 AS [User name],
	dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 AS [ESET NOD32 Antivirus]
FROM 
	dbo.v_R_System INNER JOIN
	dbo.v_GS_ADD_REMOVE_PROGRAMS ON 
		dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
WHERE 
	[Computer name] not in 
		(
			SELECT TOP (100) PERCENT 
				dbo.v_R_System.Name0 AS [Computer name], 
			FROM 
			dbo.v_R_System INNER JOIN
			dbo.v_GS_ADD_REMOVE_PROGRAMS ON 
			dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
			WHERE 
			dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = 'ESET NOD32 Antivirus'
			ORDER BY [Computer name]
		)

ORDER BY [Computer name]
Суть в том, что ты в подзапросе WHERE выбираешь имена машин, где стоит НОД, А в основном запросы ты выбираешь ВСЕ машины, за исключением тех, которые в списке подзапроса.
Для ускорения работы запроса, если в таблице есть ID, лучше подзапрос написать так:

Код: Выделить весь код
WHERE 
	dbo.v_R_System.ID not in 
		(
			SELECT TOP (100) PERCENT 
				dbo.v_R_System.ID AS [Computer name], 
			FROM 
			dbo.v_R_System INNER JOIN
			dbo.v_GS_ADD_REMOVE_PROGRAMS ON 
			dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
			WHERE 
			dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = 'ESET NOD32 Antivirus'
			ORDER BY [Computer name]
		)

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:13, 19-01-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - [Правка] Отчёт SQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - [Правка] Отчёт SQL clin Windows Server 2008/2008 R2 2 20-01-2012 01:22
Установка - Правка загрузчика Vienna7 Хочу все знать 2 09-05-2011 09:08
Разное - правка реестра mikola1983 Программирование и базы данных 2 16-12-2007 03:19
Отчёт о загрузке на ТС Butunin Klim Microsoft Windows NT/2000/2003 1 10-07-2006 13:45
Правка скрипта Rudy Вебмастеру 7 24-10-2005 15:58




 
Переход