|
Сложный запрос с расчётами
|
|||
---|---|---|---|
#18+
Добрый день, уважаемые форумчане! Прошу помощи в решении задачи, над которой бьюсь уже очень долго. Для начала объясню структуру базы: Есть две таблицы: 1) Таблица "Преподаватели". В ней содержится разная информация о преподавателях, включая Фамилию и Должность (это те поля, которые нужны в данный момент) 2) Таблица "Коэффициенты". В этой таблице находится список всех дисциплин, преподаваемых в институте в поле Наименование, к каждому наименованию проставлены в соответствие Фамилии преподавателей из первой таблицы в поля Преподаватель (Лекции) и Преподаватель (Практики), а также коэффициенты нагрузки из учебного плана. В этой таблице есть поля, которые рассчитываются автоматически в соответствии с должностью преподавателя, такие как Доля Лектора и Доля Практика. Например, Должность преподавателя "Доцент", из таблицы выбирается коэффициент для определённой дисциплины из поля Доля лек (Доцент) и Доля прак (Доцент) и записывается в поля Доля Лектора и Доля Практика соответственно (в отчёт). Я создал отчёт, в котором собираются необходимые данные для вывода в форму. Ключевые поля отчёта: Наименование (т.е. наименование дисциплины из таблицы Коэффициенты), Фамилия (преподавателя из таблицы Преподаватели), Преподаватель (Лекции) (поле из таблицы Коэффициенты, проставляется вручную из выпадающего списка), Преподаватель (Практики 1) (и т.д. до Преподаватель (Практики 10), заполнятся аналогично предыдущему полю), Доля Лектора, Доля Практика. Таким образом, нужно вывести в форму ФИО преподавателя и прочие сведения из первой таблицы (это я сделал) + список всех дисциплин, которые он ведёт в качестве лектора или практика (это НЕ сделал) + Доля ставки (рассчитывается как сумма долей лектора и практика по всем дисциплинам, соответствующим этому преподавателю, с учётом его роли в этой дисциплине, т.е. лектор или практик. Одно число должно получиться. Это тоже НЕ сделал) Прошу вас помочь с выводом в форму списка дисциплин для каждого преподавателя и с расчётом и выводом туда же его доли ставки. Прикладываю файл базы. Обратите, пожалуйста, внимание на запрос "Коэффициенты Запрос" и форму "Коэффициенты Запрос". Всю работу я делал там, остальное лишнее. Также в SQL формате запроса "Коэффициенты Запрос" вы можете увидеть, каким образом происходит выбор нужного коэффициента для расчёта, в зависимости от должности (поле Должность (кратко)) преподавателя. Структура данных в базе довольно кривовата, но лучше выдумать не мог... P.S. файл с базой не крепится из-за размера, оставляю прямую ссылку на архив из вк: vk . com /doc139685297_465753699 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 13:14 |
|
Сложный запрос с расчётами
|
|||
---|---|---|---|
#18+
Cambala2) Таблица "Коэффициенты". В этой таблице находится список всех дисциплин, преподаваемых в институте в поле Наименование, к каждому наименованию проставлены в соответствие Фамилии преподавателей из первой таблицы в поля Преподаватель (Лекции) и Преподаватель (Практики), а также коэффициенты нагрузки из учебного плана.Уже плохо. Во-первых, ссылаться надо не на фамилию (а ну как появятся однофамильцы?), а на уникальный идентификатор записи таблицы преподавателей. Во-вторых, следует ввести таблицу (или статическое перечисление) вида дисциплины (лекции, семинары, практика и пр.), а в этой таблице хранить по одной записи на каждый вид. Остальное не читал, ибо на кривой структуре работать нет смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 13:23 |
|
Сложный запрос с расчётами
|
|||
---|---|---|---|
#18+
Akina, Ссылаюсь я на id, само собой, просто в выпадающем списке этот столбец скрыт и там написана только фамилия, но в запросах обращение происходит именно по id. То есть Вы предлагаете от вида "одна дисциплина - много фамилий в соответствии" перейти к виду " много дисциплин - одна фамилия в соответствии", правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 13:30 |
|
Сложный запрос с расчётами
|
|||
---|---|---|---|
#18+
Соотношение сущностей "Преподаватель" и "Дисциплина" - много-ко-много. Значит, три таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 13:49 |
|
Сложный запрос с расчётами
|
|||
---|---|---|---|
#18+
Akina, Хорошо, если сделать так, то каким образом всё-таки выводить список всех дисциплин, относящихся к одному преподавателю? Я пытался передавать значение поля формы с id преподавателя в запрос и выводить наименования , соответствующие этому id, но не смог, видимо, корректно написать запрос, потому что выводилась пустота ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 13:54 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1611443]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 159ms |
0 / 0 |