Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
zeha_t
Зарегистрирован: 30.03.2012 Сообщения: 25
|
Добавлено: Ср Апр 25, 2012 10:21 Заголовок сообщения: Cредний возраст сотрудников по подразделениям |
|
|
Всем Добрый День!
Ребят подскажите как подсчитать средний возраст сотрудников, что-то я в растеренности... |
|
Вернуться к началу |
|
|
Mike Большой шоколадный орден
Зарегистрирован: 07.04.2011 Сообщения: 255
|
Добавлено: Ср Апр 25, 2012 10:26 Заголовок сообщения: |
|
|
Вроде бы вот эта функция считает возраст
dbo.prfn_age(дата рождения, дата_на_кот_нужно_посчитать_возраст)
А функция t-sql avg() - вернет вам среднее арифметическое значение возрастов |
|
Вернуться к началу |
|
|
zeha_t
Зарегистрирован: 30.03.2012 Сообщения: 25
|
Добавлено: Ср Апр 25, 2012 13:15 Заголовок сообщения: |
|
|
Mike писал(а): | Вроде бы вот эта функция считает возраст
dbo.prfn_age(дата рождения, дата_на_кот_нужно_посчитать_возраст)
А функция t-sql avg() - вернет вам среднее арифметическое значение возрастов |
Проблема в том что код этой процедуры я не могу найти, так то я знаю что есть такая поцедура и потом AVG-ом я выведу среднее, ща буду ещё внимательнее смотреть ) |
|
Вернуться к началу |
|
|
Mike Большой шоколадный орден
Зарегистрирован: 07.04.2011 Сообщения: 255
|
Добавлено: Ср Апр 25, 2012 14:04 Заголовок сообщения: |
|
|
Код: | USE [Lite]
GO
/****** Object: UserDefinedFunction [dbo].[prfn_age] Script Date: 04/25/2012 13:59:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--возвращает возраст на дату @cur_dt, день рождения @birth_dt
ALTER FUNCTION [dbo].[prfn_age] (@birth_dt datetime ,@cur_dt datetime)
RETURNS integer
AS
BEGIN
declare @age int
select @age =
datediff(year, @birth_dt, @cur_dt) -
(case
when month(@birth_dt) - month(@cur_dt) < 0 then 0
when month(@birth_dt) - month(@cur_dt) > 0 then 1
when day(@birth_dt) - day(@cur_dt) > 0 then 1
else 0
end)
if (isnull(@age, 0) <= 0) select @age = 0
RETURN @age
END
|
вот такая функция |
|
Вернуться к началу |
|
|
zeha_t
Зарегистрирован: 30.03.2012 Сообщения: 25
|
Добавлено: Ср Апр 25, 2012 14:11 Заголовок сообщения: |
|
|
спасиб. Будем разбираться дальше... |
|
Вернуться к началу |
|
|
|