| imho.ws |
![]() |
|
|
|
# 1 |
|
Newbie
Регистрация: 26.01.2004
Адрес: NSK
Сообщения: 45
![]() |
Помогите с Mysql
Реально ли сделать вот это средствами только mysql. А то я только первый пункт знаю как сделать.
Имеется пять таблиц: Workers: (WorkID, Name, RoleID, DeptID) Сотрудники Deptartments: (DeptID, Name) Отделы Roles: (RoleID, Name, Salary) Должности BonusesTypes (BonusID, Name, Sum) Типы премий Bonuses: (UserID, BonusID, Date) Начисленные премии Salary - годовая ЗП. При решении ориентироваться на MySql. Для тех задач, где возможно решение и со временной таблицей и без нее - составить два варианта. Нужно составить запрос или последовательность запросов для решения задачи: 1. Список сотрудников отсортированных по отделам, с указанием должностей. <Имя> <Должность> <Отдел> 2. Список сотрудников сгруппированных по отделам в след. виде <Отдел1> <Имя1> <Должность> <ЗП за месяц> <Имя2> <Должность> <ЗП за месяц> <Отдел2> <Имя3> <Должность> <ЗП за месяц> и т.д. 3. Список начислений по всем сотрудникам за указанный месяц года (ЗП за месяц + бонусы) 3. Список начислений по всем сотрудникам за указанный год (ЗП + бонусы за год) 4. Составить список "Численность отделов" <Отдел> <Кол-во сотрудников> <Средняя ЗП за месяц> 5. Составить список "мертвых" отделов (где нет сотрудников) 6. Удалить все "мертвые" отделы 7. Составить список должностей по заданному отделу <Должность1> <Должность2> и т.д. 8. Составить список людей с бонусами <Имя> <сумарный бонус> |
|
|
|
|
# 3 |
|
Junior Member
Регистрация: 31.08.2003
Адрес: РБ, Гомель
Пол: Male
Сообщения: 120
![]() |
select
w.name as wname, d.name as dname и.т.д. from workers w left join Deptartments d on (d.DeptID=w.DeptID) left join Roles r on (r.RoleID=w.RoleID) group by w.DeptID Вот маленький пример, но, не тестил, от руки писал
__________________
There is no fate but what we make for ourselves. |
|
|