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

Откуда:
Сообщений: 3
Всем Привет!
У меня не получается умножение в группировке
select Name_company, Name_profession, Koeff, count(Id_sotr)*Koeff as [Количество]
from Companies
group by Name_company, Name_profession, Koeff
проблема в том, что в count(Id_sotr)*Koeff получается такой же результат как и в Koeff. он не считает сотрудников, Koeff - тип decimal(4,2)
Можно ли сделать это другими способами?
17 апр 13, 11:55    [14191540]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
рекомендации, пункты 6 и 4
17 апр 13, 11:57    [14191555]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Aknur
Всем Привет!
У меня не получается умножение в группировке
select Name_company, Name_profession, Koeff, count(Id_sotr)*Koeff as [Количество]
from Companies
group by Name_company, Name_profession, Koeff
проблема в том, что в count(Id_sotr)*Koeff получается такой же результат как и в Koeff. он не считает сотрудников, Koeff - тип decimal(4,2)
Можно ли сделать это другими способами?
count(Id_sotr) - это не количество сотрудников,
а количество строк, в которых Id_sotr IS NOT NULL.
17 апр 13, 12:00    [14191590]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Glory
Member

Откуда:
Сообщений: 104760
Aknur
проблема в том, что в count(Id_sotr)*Koeff получается такой же результат как и в Koeff. он не считает сотрудников, Koeff - тип decimal(4,2)

Агрегатная функция count считает не сотрудников, а число записей в заданном условии group
Вы видели результат своего
select Name_company, Name_profession, Koeff, count(Id_sotr)
from Companies
group by Name_company, Name_profession, Koeff

Там наверняка все 1цы
17 апр 13, 12:02    [14191607]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Aknur
Member

Откуда:
Сообщений: 3
ясно)
тогда мне нужно сделать это через условия
но в нем есть ошибки и я не знаю в чем
ALTER PROCEDURE dbo.StoredProcedure5
	/*
	(
	@parameter1 int = 5,
	@parameter2 datatype OUTPUT
	)
	*/
	
AS
if (select Koeff from Companies where Koeff = 6.00 )
select Name_company, Name_profession, Koeff , count(Id_sotr)*6  as [Количество]
from Companies 
group by Name_company, Name_profession, Koeff 

 if (select Koeff from Companies where Koeff = 0.50)
select  Name_company, Name_profession, Koeff , count(Id_sotr)/2  as [Количество]
from Companies 
group by Name_company, Name_profession, Koeff 

else 
select Name_company, Name_profession, Koeff , count(Id_sotr)  as [Количество]
from Companies 
group by Name_company, Name_profession, Koeff 


	/* SET NOCOUNT ON */
	RETURN


К сообщению приложен файл. Размер - 23Kb
17 апр 13, 19:28    [14194944]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Aknur
count(Id_sotr)*6  as [Количество]

Не могу понять эту логику. Типа, каждый сотрудник такой фирмы работает за шестерых?

Не той дорогой вы идёте. Сейчас у вас есть коэффициенты 0.5, 1, 6. Завтра добавится, например, 3. Послезавтра — 1.5. Так и будете всё время процедуру допиливать?
17 апр 13, 19:40    [14194970]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Aknur
Member

Откуда:
Сообщений: 3
Гость333,
автор
Не могу понять эту логику. Типа, каждый сотрудник такой фирмы работает за шестерых?

Нет, просто так надо
автор
Не той дорогой вы идёте. Сейчас у вас есть коэффициенты 0.5, 1, 6. Завтра добавится, например, 3. Послезавтра — 1.5. Так и будете всё время процедуру допиливать?

Да, согласна. Возможно и не самое лучшее решение, но по другому я не знаю как делать
17 апр 13, 19:45    [14194993]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Гость333
Member

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

Покажите пример данных из таблицы Companies.
17 апр 13, 19:51    [14195004]     Ответить | Цитировать Сообщить модератору
 Re: умножение в группировке  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Aknur
но в нем есть ошибки и я не знаю в чем
последовать рекомендациям Вы не желаете принципиально?
18 апр 13, 10:09    [14196670]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить