Forum Webscript.Ru
Общие => Базы данных => Тема начата: Error202 от 30 Мая 2006, 10:59:12
-
База MySQL...
Подскажите пожалуйста, как лучше сформировать таблицу и составить грамотные запросы по следующей задаче:
Есть список сотрудников в следующем формате:
----------
Имя
- Покраска пола 7%
- Покраска окон 10%
- Покраска фасада 15%
...
----------
У каждого сотрудника своя процентная ставка...
Задача: руководитель вводит в строку список работ ($words = "покраска окон, покраска пола") и количество показываемых записей ($num=4)... А ему выдается список
из 4 записей где указаны имена сотрудников выстроены по правилам:
1. Выборка сначала всех по первой указанной работе, сортировка по процентам, затем по второй работе, также сортировка по процентам и т.д.
2. Если записей набралось = $num, то тогда прекратить поиск и показать их...
Буду очень благодарен тому, кто подскажет правильное направление действий
-
Error202
http://mysql.ru/docs/
GROUP, ORDER
-
Это я понимаю, а как их применить для конкретной задачи?
Может не сложно, но что-то я не могу сообразить... :(
-
Error202
GROUP BY job ORDER BY percent DESC LIMIT 0,4 выдает что-то неудачное?
-
Да тут соль в том, что у одного сотрудника несколько видов работ, т.е. таблица имеет вид:
id
name (varchar)
w1 (varchar)
p1 (integer)
w2 (varchar)
p2 (integer)
...
Или можно как-нть поудачнее сделать таблицу?
-
Error202
Честно говоря не совсем понимаю в чем именно состоит сложность. В формировании структуры или в выводе информации ?
-
Мне нужно правильно сформировать таблицу, а потом выбрать указанным выше образом по запросу данные...
-
Error202
теперь, думаю ясно.
Создаешь таблицу с 4-мя полями:
варинат 1:
1 идинтификатор
2. Имя Сотрудника
3. Выполняемая работа
4. Процент выполненой работы
Если в выполняемой работе задействованно несколько рабочих.
и наоборот.
вариант 2:
тогда лучше Работу и сторудников раделить на две таблицы а в третей их связать по идентификаторам задания и сотрудников.
-
СПАСИБО!!!!!!!! Сделал по второму варианту...
Голова совсем отказывается думать...
-
тема закрыта.