Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
Есть база (1 столбец netbios, 2 столбец "SOFT")
и стоит задача подсчитать количесто строк машин у которых есть продукт "СИМАНТЕК" и подсчитать количество строк машин у которых нет данного продукта.
Но вот в чом загвоздка у машин у которого нет данного продукта в столбце "SOFT" нет никаких значений по которым можно было отфильтровать.
Как мне быть ПАРНИ помогите
6 сен 11, 12:41    [11233620]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
Yuza,

"нет никаких значений" - это NULL-ы что ли?
6 сен 11, 12:47    [11233667]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Yuza
нет никаких значений


Ну что-то там всегда есть, NULL на крайняк. В любом случае:

1. Считаете сколько машин ВСЕГО.
2. Считаете только те что с СИМАНТЕК-ом.
3. Вычитаете.
6 сен 11, 13:02    [11233814]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Yuza,

Ну а что, оператор неравенства-то отменили разве?
declare @t table(Soft varchar(10))
insert into @t values ('СИМАНТЕК'),(NULL),('СИМАНТЕК'),('A'),('B');

with t as(select name = case when SOFT = 'СИМАНТЕК' then Soft else 'НЕ СИМАНТЕК' end from @t)
select count(*), name from t group by name
если сервер 2000 cte на подзапрос замените.
6 сен 11, 13:10    [11233884]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
baracs,

нет, еслиб были NULL то это совсем меняло дело
просто строка есть если есть соответствие машина + софт
и строки нет если нет соответствия
6 сен 11, 13:13    [11233903]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
SomewhereSomehow,

Спасибо за содержательный ответ.
а можно полностью запрос? таблицы кстати 2-ве в одной netbios, а в другой soft
6 сен 11, 13:17    [11233951]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Yuza,

Вы опишите сколько всего у вас там таблиц, где что храниться и какие связи..

п.с.
попытка телепатии - если таблиц несколько, может быть вас спасет left join?
6 сен 11, 13:18    [11233957]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
SomewhereSomehow,

итак вот что есть

SELECT dbo.v_R_System.Netbios_Name0, dbo.v_GS_Mapped_Add_Remove_Programs.DisplayName0
FROM dbo.v_R_System INNER JOIN
dbo.v_GS_Mapped_Add_Remove_Programs ON dbo.v_R_System.ResourceID = dbo.v_GS_Mapped_Add_Remove_Programs.ResourceID
...
просто я еще не сталкивался с такой агригатной вункцией...
6 сен 11, 13:22    [11233997]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Yuza,

ну вот какой-никакой тестовый пример, я думаю идея понятна, дальше доработаете под свои нужды
declare @netbios table(id int identity, name varchar(10));
declare @soft table (id int identity, netbiosId int, name varchar(10));

insert into @netbios(name) values ('VASYA-PC'),('PETYA-PC'),('KOLYA-PC');
insert into @soft(netbiosId,name) values 
(1,'СИМАНТЕК'),(1, NULL),
(1,'СИМАНТЕК'),(2, NULL),
(2,'A'),(2, 'B');

with t
as
(
select
	*,
	HasSymantec = case when exists (select * from @soft s where n.id = s.netbiosId and s.name = 'СИМАНТЕК') then 1 else 0 end
from
	@netbios n
)
select
	HasSymantec,
	count(*) 
from 
	t
group by
	HasSymantec
6 сен 11, 13:36    [11234118]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
SomewhereSomehow
Вы опишите сколько всего у вас там таблиц, где что храниться и какие связи


И даже более того, Рекомендации по оформлению сообщений в форуме. А то выяснится по итогу, что разные не только таблицы, но и сервера. :))
6 сен 11, 13:36    [11234127]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
SomewhereSomehow,

Спасибо, буду пробывать
6 сен 11, 14:12    [11234490]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Antoshka
Member

Откуда:
Сообщений: 828
Опечатка в названии темы, говорящая сама за себя:
neet брит.; сокр. от not in education, employment or training "нит" (представитель низших слоёв общества в Великобритании в 21 в.: живёт на социальное пособие, сознательно не работает и не учится)
7 сен 11, 17:49    [11243137]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
Всем привет!
помогите ещё в одной проблемке
есть запрос:
SELECT     dbo.v_GS_Mapped_Add_Remove_Programs.DisplayName0, dbo.v_R_System.Netbios_Name0, dbo.v_RA_System_IPAddresses.IP_Addresses0
FROM         dbo.v_GS_Mapped_Add_Remove_Programs INNER JOIN
                      dbo.v_R_System ON dbo.v_GS_Mapped_Add_Remove_Programs.ResourceID = dbo.v_R_System.ResourceID INNER JOIN
                      dbo.v_RA_System_IPAddresses ON dbo.v_R_System.ResourceID = dbo.v_RA_System_IPAddresses.ResourceID
нужен список машин у которых не установлен Symantec
29 ноя 11, 17:57    [11679507]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
aleks2
Guest
Три месяца считать симантеки... да... упорство достойное лучшего применения.
29 ноя 11, 19:32    [11679766]     Ответить | Цитировать Сообщить модератору
 Re: I NEET HELP!! с подсчетом строк  [new]
Yuza
Member

Откуда:
Сообщений: 28
aleks2,

^) нет, не так все понял, посто в старой теме похожую проблему хотел обсудить, хотя все сам уже решил
29 ноя 11, 19:54    [11679877]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить