Вычисление среднего значения
структура:
Пособия
- Код безработного
- Зарплата
- Размер пособия
- Начало выплаты
- Конец выплаты
Вычисление среднего значения
мне надо:
1. чтобы отображались все поля,
2. чтобы среднее значение вычислялось для конкретной записи поля "Код безработного"
я сделал так, но происходит ошибка:
SELECT Пособия.[Зарплата], Пособия.[Размер пособия] AVG([Зарплата]) AS [Среднее значение з/п] FROM Пособия
Также пробовал ставить звёздочку после SELECT, всё равно ошибка.
Что не так
и как реализовать 2 вопрос?
Уточняй что именно ты хочешь усреднять.
Уточняй что именно ты хочешь усреднять.
А вообще мне надо именно для одного ряда. А если среднее значение будет считаться за 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 месяца.
Извиняюсь за такой длинный ответ
То, что ты задумал сделать я бы делал на уровне серверного языка программирования (php/c#/java/...) после того как получил из базы данных значения зарплаты, дат начала и окончания выплат.
программирования (php/c#/java/..
эх если бы я его знал...
но не может быть что это нельзя реализовать с помощью sql или vb
AVG надо использовать совместно с GROUP BY. Если правильно понял, тебе надо группировать по коду безработного.
С помощью vb я думаю можно, но я тебе тут не помошник т.к. последний раз на vb писал года полтора назад.
честно не знаю
в общем объясняю
Да средняя з/п задаётся один раз, точней не задаётся, а её надо вычислить один раз.
А вычислить её надо по двум полям как минимум, сами понимаете, а то будет тоже самое число, что и у поля "Зарплата".
Поэтому нужно заменить я так думаю поле "Зарплата" на два поля:
- "Зарплата за предпоследний квартал"
- "Зарплата за последний квартал"
что-то типо так, помогите озоглавить.
ну и внести туда значения разные наверное, и по этим 2 полям посчитать ср. знач.
думаю понятно
access