Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вычисление среднего значения

27K
14 июня 2007 года
inret
8 / / 08.06.2007
Здравствуйте!

структура:

Пособия
- Код безработного
- Зарплата
- Размер пособия
- Начало выплаты
- Конец выплаты

Вычисление среднего значения

мне надо:
1. чтобы отображались все поля,
2. чтобы среднее значение вычислялось для конкретной записи поля "Код безработного"

я сделал так, но происходит ошибка:

SELECT Пособия.[Зарплата], Пособия.[Размер пособия] AVG([Зарплата]) AS [Среднее значение з/п] FROM Пособия

Также пробовал ставить звёздочку после SELECT, всё равно ошибка.
Что не так

и как реализовать 2 вопрос?
337
14 июня 2007 года
shine
719 / / 09.06.2006
Среднее значение для конкретной записи будет равно самому значению поля Код безработного.
Уточняй что именно ты хочешь усреднять.
27K
14 июня 2007 года
inret
8 / / 08.06.2007
Цитата: shine
Среднее значение для конкретной записи будет равно самому значению поля Код безработного.
Уточняй что именно ты хочешь усреднять.



А вообще мне надо именно для одного ряда. А если среднее значение будет считаться за 2 месяца работы допустим,то там уже не будет тоже самое число при выводе?


Как жэто всё должно реализоваться:
Пример тестирования методом «белого ящика» расчета начисления пособия:
Входные данные:
Средняя заработная плата на предыдущем месте работы за 2 месяца – 180 руб.
Размер пособия:
Первые 3 месяца – 75% от з/п.
Следующие 4 месяца - 60% от з/п,
В дальнейшем – 45%от з/п, но во всех случаях не ниже минимальной заработной платы.
Расчет выходных данных вручную:
Первые З месяца – 135 руб.
Следующие 4 месяца – 96 руб.
В дальнейшем – 83 руб., т.к. 45% от з/п составили 72 руб., а это ниже минимальной заработной платы, поэтому безработному будет выплачиваться пособие в размере минимальной заработной платы (согласно закону).


Пояснение:
Если код безработного в данную таблицу занесен первый раз - пособие только начинает выплачиваться, то «Начало выплаты» пользователь устанавливает сам, а «Конец выплаты» устанавливается сроком через 3 месяца. Размер пособия при этом высчитывается 75% от заработной платы. Дату «Конца выплаты» можно изменить, например при устройстве безработного на работу или других причинах. Далее происходит автоматический ввод информации в таблицу.
Вторая запись будет такой - при вводе «Код безработного» (фиксируется, что ввод осуществляется второй раз),
«Размер пособия» - 60% от зарплаты, дата «Начало выплаты» - занесутся данные предыдущей записи поля «Конец выплаты» и плюс 1 день, дата «Конец выплаты» - занесутся данные, установленные сроком через 4 месяца от начала выплаты уже новой суммы.
Третья запись – при вводе «Код безработного» (фиксируется, что ввод осуществляется третий раз),
«Размер пособия» - 40% от заработной платы, если эта сумма меньше установленной законодательством минимальной заработной платы, то «Размер пособия» - будет установлен равный минимальной заработной плате. «Начало выплаты» - дата предыдущей записи поля «Конец выплаты» плюс 1 день, «Конец выплаты» вводится пользователем, т.к. выплата данного пособия не ограничена.

Анализ результатов расчетов.

Входные данные:
Код безработного - 1
Средняя заработная плата на предыдущем месте работы за 2 месяца -180 руб.
Начало выплаты (форма - ММ\ЧЧ\ГТ) - 01\10\00.
Выходные данные:
Конец выплаты - 04\10\00.
Размер пособия; (75% от з/п) – 135 руб.
Входные данные:
Код безработного - 1 (фиксируется второй раз).
Выходные данные:
Начало выплаты (04\10\00 + 1 день) – 04\11\00.
Конец выплаты – 08\11\00
Размер пособия (60% от з/п) – 96 руб.
Входные данные:
Код безработного – 1 (фиксируется третий раз)
Выходные данные:
Начало выплаты (08\11\00 + 1 день) – 08\12\00.
Конец выплаты – не ограничен
Размер пособия (45% от з/п) – 83 руб.

Так как 45 % от заработной платы составили 72 руб., а это ниже минимальной заработной платы, то безработному будет выплачиваться пособие в размере минимальной заработной платы (согласно закону).




У меня не получается со среднем значением и с датами.
Как мне эти ДАТЫ надоели....


Вот код по датам,почему он не работает:
=DateAdd("m",3,"10.10.2006"
Это код для вычяисления конца оплаты пособия.
Там автоматичски после ввода "начала оплаты" должно в поле "конец оплаты" прибавить на 3 месяца.






Извиняюсь за такой длинный ответ

337
14 июня 2007 года
shine
719 / / 09.06.2006
Ты неправильно используешь функцию AVG. Она вычисляет среднее значение по нескольким записям. Например, запрос SELECT AVG(Зарплата) FROM Пособия вернет среднюю зарплату по всем записям в таблице, а не среднюю по времени для какой-то записи.
То, что ты задумал сделать я бы делал на уровне серверного языка программирования (php/c#/java/...) после того как получил из базы данных значения зарплаты, дат начала и окончания выплат.
27K
14 июня 2007 года
inret
8 / / 08.06.2007
Цитата: shine

программирования (php/c#/java/..



эх если бы я его знал...
но не может быть что это нельзя реализовать с помощью sql или vb

10
14 июня 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: inret
но не может быть что это нельзя реализовать с помощью sql или vb


AVG надо использовать совместно с GROUP BY. Если правильно понял, тебе надо группировать по коду безработного.

337
14 июня 2007 года
shine
719 / / 09.06.2006
Цитата: inret
но не может быть что это нельзя реализовать с помощью sql или vb


С помощью vb я думаю можно, но я тебе тут не помошник т.к. последний раз на vb писал года полтора назад.

13
14 июня 2007 года
RussianSpy
3.0K / / 04.07.2006
А какая СУБД кстати?
27K
14 июня 2007 года
inret
8 / / 08.06.2007
Цитата: Freeman
AVG надо использовать совместно с GROUP BY. Если правильно понял, тебе надо группировать по коду безработного.


честно не знаю

в общем объясняю
Да средняя з/п задаётся один раз, точней не задаётся, а её надо вычислить один раз.
А вычислить её надо по двум полям как минимум, сами понимаете, а то будет тоже самое число, что и у поля "Зарплата".
Поэтому нужно заменить я так думаю поле "Зарплата" на два поля:
- "Зарплата за предпоследний квартал"
- "Зарплата за последний квартал"
что-то типо так, помогите озоглавить.

ну и внести туда значения разные наверное, и по этим 2 полям посчитать ср. знач.

думаю понятно

27K
14 июня 2007 года
inret
8 / / 08.06.2007
Цитата: RussianSpy
А какая СУБД кстати?



access

27K
15 июня 2007 года
inret
8 / / 08.06.2007
ну что никто не поможет...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог