|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Расчет заработной платы
Доброго времени суток! Помогите, пожалуйста, написать функцию для расчета заработной платы.
Имеем две таблицы в бд: продавцов и список товаров. Каждая продажа записывается на конкретного продавца. При расчете з/п используется ставка 1500грн + премия. Премия считается по кол-ву продаж и не может быть больше 50% от ставки. Например, 1000 продаж - 50%, 500 - 25%, 100 - 5% и т.д. Плюс удержания из з/п: ЕСВ=ЗП*3,6% и НДФЛ=ЗП*15% Помогите, пожалуйста. Абсолютно не понимаю как это можно реализовать. |
#2
|
||||
|
||||
зависит от используемой СУБД. вообще можно одним запросом решить задачу через select case, к примеру.
и вообще это ущемление прав какое-то Цитата:
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 02.06.2014 в 17:55. |
#3
|
|||
|
|||
Цитата:
Цитата:
|
#4
|
||||
|
||||
Цитата:
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
1. Продавцы. Поля: id_продавца, ФИО 2. Товары. Поля: id_товара, наименование, кол-во, цена 3. Продажи. Поля: id_продажи, id_товара, кол-во, цена, сумма, id_продавца Ну и соответственно поставить связи id_продавца и id_товара из первых двух таблиц к третьей. |
#6
|
||||
|
||||
В Продажи надо бы еще добавить дату, без которой не выбрать данные за месяц. И при такой формуле расчета, вам не нужна таблица Товары.
Для Акцеса вот такой заросец выходит: Код:
SELECT Продавцы.ФИО, Count(Продажи.[Дата]) AS Продаж, 1500+1500*Switch(Продаж>=1000,0.5, Продаж Between 999 And 500, 0.25, Продаж Between 499 And 100, 0.05, Продаж Between 99 And 0, 0) AS ЗП, [ЗП]-[ЗП]/100*3.6-[ЗП]/100*15 AS Итого FROM (Продавцы INNER JOIN Продажи ON Продавцы.Код = Продажи.КодПродавца) INNER JOIN Товары ON Продажи.КодТовара = Товары.Код WHERE (((Month([Дата]))=6)) GROUP BY Продавцы.ФИО; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
poison-bla (08.06.2014)
|
#7
|
|||
|
|||
Цитата:
|
#8
|
||||
|
||||
Цитата:
|
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
poison-bla (08.06.2014)
|
#9
|
|||
|
|||
А подскажите, пожалуйста, как переписать этот запрос на кнопку?
Код:
SELECT Продавцы.ФИО, Count(Продажи.[Дата]) AS Продаж, 1500+1500*Switch(Продаж>=1000,0.5, Продаж Between 999 And 500, 0.25, Продаж Between 499 And 100, 0.05, Продаж Between 99 And 0, 0) AS ЗП, [ЗП]-[ЗП]/100*3.6-[ЗП]/100*15 AS Итого FROM (Продавцы INNER JOIN Продажи ON Продавцы.Код = Продажи.КодПродавца) INNER JOIN Товары ON Продажи.КодТовара = Товары.Код WHERE (((Month([Дата]))=6)) GROUP BY Продавцы.ФИО; |
#10
|
||||
|
||||
Цитата:
Сначала нужно текст этого запроса поместить в какой-нибудь ADOQuery (через свойство SQL) и потом его открыть (методом Open). |