0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 25
|
|
1 | |
Некорректная работа запросов (дублирование) бд КАДРЫ И ВЫПЛАТЫ28.05.2015, 18:48. Показов 1381. Ответов 10
Метки нет (Все метки)
Добрый вечер. Только начинаю работать с Access и пока трудно все освоить, ближе к делу:
я создал БД с сотрудниками, должностями, надбавками (за стаж, звание и тд), в ней создал следующие запросы: 1. Стаж; должен выводить: код сотрудника, фио, стаж в годах (чтобы вычислялся от даты приема на работу), надбавки за стаж (как % от оклада по должности) и надбавку в рублях. 2. Кадры; должен выводить: код сотрудника, фио, должность, стаж и возраст в годах. 3. Выплаты; код сотрудника, фио, оклад в рублях, надбавка на стаж (и все другие надбавки, которые есть в бд), итого в рублях (все виды надбавок устанавливаются в % от оклада по должности). Но запросы у меня не работают как надо, выводит много раз одного человека, некоторые поля я попросту не знаю как добавить (надбавку в рублях, вычисление стажа от даты приема, надбавка как % от оклада, возраст, итого в рублях). Прошу, посмотрите мою БД. Надеюсь на вашу помощь.
0
|
28.05.2015, 18:48 | |
Ответы с готовыми решениями:
10
Некорректная работа SQL запросов при выводе данных из БД в DGV Дублирование ajax запросов Yii. Дублирование запросов при использовании CJuiDialog Разбиение видео на кадры, кадры на пиксели |
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
28.05.2015, 20:16 | 2 |
Таблица стаж "висит в воздухе", не связана с другими. Поэтому в запросах получается декартово произведение - все записи стажа*все остальные записи. Нужно использовать ее для вычисления надбавки за стаж, не включая в запросы.
1
|
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
28.05.2015, 20:59 | 3 |
Если считать стаж полных лет с даты поступления и использовать возрастание надбавки от стажа, то запрос Сотрудники_Стаж_Надбавка_ во вложении. Для надбавок он самый сложный.
1
|
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
28.05.2015, 21:07 | 4 |
Сообщение было отмечено Maryus как решение
Решение
Смотрите запросы:
1. Стаж - "Запрос1_Стаж" 2. Кадры - "СотрудникиКадры" 3. Выплаты - "СотрудникиВыплаты" Запросы с префиксом "Сотр" (СотрЗвание, СотрКлассность и прочие) вспомогательные. Иначе, помещая их SQL-выражения в основные запросы, текст запросов получается гигантским и очень неудобным
3
|
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
28.05.2015, 21:14 | 6 |
Maryus, с Вас отдельное спасибо mobile, за формулу вычисление стажа datediff("yyyy", Datebirth, Date())+(format(Datebirth,"mmdd")>format(Date(),"mmdd"))).
1
|
8859 / 5904 / 585
Регистрация: 27.03.2013
Сообщений: 19,567
|
|
29.05.2015, 03:50 | 7 |
0
|
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
29.05.2015, 04:12 | 8 |
Понял (но только свой вариант):
1
|
8859 / 5904 / 585
Регистрация: 27.03.2013
Сообщений: 19,567
|
|
29.05.2015, 04:25 | 9 |
Из за Древней древности Аксика не смог уследить за всякими перепетиями, в связи с чем вскочил вопрос -
А на фига в БД нужны запросы - Запрос1_Стаж Запрос2_Кадры Или это просто художества ТС?
0
|
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
29.05.2015, 04:31 | 10 |
Угу. Это ТС пытался надбавки вычислить, но косо ... .
1
|
8859 / 5904 / 585
Регистрация: 27.03.2013
Сообщений: 19,567
|
|
29.05.2015, 04:40 | 11 |
Спасибо успокоил, а то я даже малость растерялся, т. к. в сих запросах ни каких вычислений не увидел и почти впал в панику, подумал что чего то перестал допонимать по старости лет.
0
|
29.05.2015, 04:40 | |
29.05.2015, 04:40 | |
Помогаю со студенческими работами здесь
11
Работа с файлом (корректный код, некорректная работа программы) Работа с INI: некорректная работа пользовательской функции Некорректная работа Некорректная работа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |