![]() |
Помогите с 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. Составить список людей с бонусами <Имя> <сумарный бонус> |
|
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 Вот маленький пример, но, не тестил, от руки писал |
Все, спасибо уже разобрался. Тему можно закрывать.
|
| Часовой пояс GMT +4, время: 19:33. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.