Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
van Persie
27 / 27 / 10
Регистрация: 10.03.2012
Сообщений: 249
1

Среднее значение в расчетное поле

13.05.2013, 09:18. Просмотров 497. Ответов 6
Метки нет (Все метки)

Вот такая функция имеется.
C#
1
2
3
4
5
6
7
8
9
10
11
ALTER FUNCTION dbo.Function1
 (
  @bookID int
 )
RETURNS DECIMAL(8,2) 
AS
 BEGIN
    DECLARE @result DECIMAL(8, 2)
    SET @result = (SELECT COUNT(*) FROM Rates WHERE(Rates.BookID = @bookID))/(SELECT SUM(Rates.Rate) FROM Rates WHERE(Rates.BookID = @bookID)); 
 RETURN @result
 END
Но она возвращает только целые значения. Нужно точные.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2013, 09:18
Ответы с готовыми решениями:

Как найти среднее значение в поле DataGridView
Имеется проект.Нужно найти среднее значение для кол-ва страниц и года издания.Ответ должен...

Расчетное поле
Всем привет, народ подскажите: как сделать расчетное поле по предыдущим полям (типо вьюшки, на...

Расчетное поле
Имеется таблица Tov(BDgrid) в которой три поля Закупочная цена,Торговая надбавка, Цена(поля названы...

EXCEL 2010 сводная таблица расчетное поле
Добрый день! Возникла следующая проблема -необходимо добавить расчетные строки в сводную...

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

6
kontuPauk
303 / 301 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
Завершенные тесты: 1
13.05.2013, 11:43 2
У Вас по-моему таки обратная среднему считается, нет?
А для получения среднего есть замечательная функция AVG
1
van Persie
27 / 27 / 10
Регистрация: 10.03.2012
Сообщений: 249
13.05.2013, 11:56  [ТС] 3
Цитата Сообщение от kontuPauk Посмотреть сообщение
У Вас по-моему таки обратная среднему считается, нет?
А для получения среднего есть замечательная функция AVG
Блин, точно. Я уже чуть было дурачком с этой функцией не стал.
Вот первый вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
ALTER FUNCTION dbo.Function1
 (
  @bookID int
 )
RETURNS DECIMAL(8,2) 
AS
 BEGIN
    DECLARE @result DECIMAL(8, 2)
    SET @result = (SELECT SUM(Rates.Rate) FROM Rates WHERE(Rates.BookID = @bookID)) / (SELECT COUNT(*) FROM Rates WHERE(Rates.BookID = @bookID));
 RETURN @result
 END
Вот второй вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
ALTER FUNCTION dbo.Function2
 (
  @bookID int
 )
RETURNS DECIMAL(8,2) 
AS
 BEGIN
    DECLARE @result DECIMAL(8, 2)
    SET @result = (SELECT AVG(Rates.Rate) FROM Rates WHERE(Rates.BookID = @bookID));
 RETURN @result
 END
Оба варианта отбрасывают дробные значения.
0
turbanoff
Эксперт Java
4034 / 3769 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
13.05.2013, 12:12 4
Какой тип у Rates.Rate?

PS. Вам бы лучше спросить тут - http://www.cyberforum.ru/sql-server/
1
van Persie
27 / 27 / 10
Регистрация: 10.03.2012
Сообщений: 249
13.05.2013, 12:16  [ТС] 5
Цитата Сообщение от turbanoff Посмотреть сообщение
Какой тип у Rates.Rate?

PS. Вам бы лучше спросить тут - http://www.cyberforum.ru/sql-server/
целое, int.

Добавлено через 1 минуту
Я так понимаю в моих функциях производится целочисельное деление. Или что-то вроде того.
0
turbanoff
Эксперт Java
4034 / 3769 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
13.05.2013, 12:16 6
Ну вот в этом и проблема. Привидите его к decimal, прежде чем передавать в AVG
В документации по AVG это все написано.
1
van Persie
27 / 27 / 10
Регистрация: 10.03.2012
Сообщений: 249
13.05.2013, 12:23  [ТС] 7
Спасибо большое! Может, кому-то еще поможет мое решение. Психушка пока откладывается.
C#
1
2
3
4
5
6
7
8
9
10
11
ALTER FUNCTION dbo.Function1
 (
  @bookID int
 )
RETURNS DECIMAL(8,2) 
AS
 BEGIN
    DECLARE @result DECIMAL(8, 2)
    SET @result = (SELECT CAST(SUM(Mark) AS DECIMAL(8,2)) FROM Rates WHERE(Rates.BookID = @bookID)) / (SELECT COUNT(*) FROM Rates WHERE(Rates.BookID = @bookID));
 RETURN @result
 END

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

0
13.05.2013, 12:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 12:23

Вычисляемое поле на форме, посчитать среднее значение
Добрый вечер. У меня есть документ "Добавление оценок", реквизиты документа: ученик, предмет,...

Как получить среднее значение разницы между значениями дат в поле?
Есть табличка, допустим она содержит всего одно поле с типом datetime. Имеет 5 записей. Мне нужно...

В одномерном массиве определить среднее значение всех элементов,значение которых превышает среднее значение
в произвольно заданном одномерном массиве определить среднее значение всех элементов,значение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru