Создание сложного mysql представления с использованием данных из нескольких таблиц - PullRequest
0 голосов
/ 18 января 2020

Я очень плохо знаком с mysql База данных, и мне нужно создать 2 сложных представления, используя таблицы ниже Below is the data model

[I have to create 2 views as in the link 2

Ниже приведено то, что я пробовал до сих пор, но все еще не могу получить требуемый вид. Я создал новую таблицу для хранения информации за квартал. Кроме того, я создал триггер, который обновляет

year_quarter_period при новой вставке в таблицу расписания

CREATE TABLE `year_quarter_period` (
  `quarter` SMALLINT PRIMARY KEY AUTO_INCREMENT,
  `from_date` timestamp,
  `to_date` timestamp,
  `timesheet_id` int
);

ALTER TABLE `timesheet` ADD FOREIGN KEY (`email_id`) REFERENCES `resource` (`email`) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE `timesheet` ADD FOREIGN KEY (`project_name`) REFERENCES `project` (`name`) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE `revenue` ADD FOREIGN KEY (`project_name`) REFERENCES `project` (`name`) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE `resource_cost` ADD FOREIGN KEY (`email_id`) REFERENCES `resource` (`email`) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE `year_quarter_period` ADD FOREIGN KEY (`timesheet_id`) REFERENCES `timesheet` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

Это то, что я пытался создать первый взгляд

SELECT project.name as Project, 
       year_quarter_period.quarter as Quarter,
       resource.role as Role ,
       timesheet.hours as Efforts
  FROM project as project,
       year_quarter_period as year_quarter_period,
       resource as resource, 
       timesheet as timesheet
 WHERE resource.role = (SELECT role from resource) 
  AND year_quarter_period.quarter = (SELECT quarter from year_quarter_period)

Но я получаю следующий результат, который явно неверен

enter image description here

Я застрял в этом с прошлого 1 день. Может ли кто-нибудь помочь мне в этом

...