2015-11-13 5 views
0

Так в основном это база данных: Рассмотрит отношение схему базы данных COMPANY приведенных нижеSQL путаница решения запросов, смущенная группа и имеющий пункт

EMPLOYEE (fmane, minit, lname, ssn, birthdate, address, sex, salary, superssn, dno)  KEY: ssn 
DEPARTMENT (dname, dnumber, mgrssn, mgrstartdate)    KEY: dnumber. 
PROJECT (pname, pnumber, plocation, dnum)       KEY: pnumber. 
WORKS_ON (essn, pno, hours)           KEY: (essn, pno) 
DEPENDENT (essn, dependent-name, sex, bdate, relationship)    KEY: (essn, dependent-name) 

и вопрос:

Give фамилию и SSN тех менеджеров, которые работают над двумя или несколькими проектами, расположенными в Кливленде.

Коррекция решение выглядит так:

select Lname 
    from Employee e, Department d 
where (e.ssn = d.mgrssn) 
    and ssn in (
         select w.essn 
         from works_on w, Project p 
         where w.pno = p.pnumber 
          and p.plocation = 'Cleveland' 
         group by w.essn 
         having count(*) >= 2 
        ) 

Мой вопрос:

  1. Почему добавляется works_on?
  2. сотрудник e и отдел d, почему они оба нужны? Я думал, что мы находим сотрудника
  3. , наконец, самая запутанная часть - это группа по w.essn, у которой есть счет (*)> = 2, , если вместо

    так как мы выясняем номер проекта, превышающий 2?

Если у вас есть время, можете ли вы поместить знаки по правильному решению, чтобы показать , какая часть принадлежит сотруднику и почему они нужны. Я очень ценю это.

+0

Извините, слишком широко, нам нужно научить вас курсу db, чтобы покрыть все эти моменты. Вы должны спросить своего учителя. Пожалуйста, прочитайте [** Как спросить **] (http://stackoverflow.com/help/how-to-ask) –

ответ

0

Мы можем попробовать. Надеюсь это поможет. Ваш вопрос:

2.employee e и department d, зачем они нужны? Я думал, что мы только найти сотрудника

Нет, требование не найти сотрудника, то для нахождения менеджеров

1.Why добавляют works_on?

Без works_on, как вы знаете, ** который работник работал на какой проект? **

3.finally, наиболее запутанных часть группы по w.essn имеющей кол () > = 2, следует ли вместо этого использовать <= 2 часть для проекта p? так как мы выясняем номер проекта, который больше 2? *

Вы ищете проекты, в которых участвуют 2 или более сотрудников, или вы ищете сотрудников, которые работали над 2 или более проектами?

+0

Спасибо, можете ли вы написать комментарии вокруг решения, и я соглашусь с ним. как только некоторые краткие описания вокруг частей решения. извините, потому что я сильно запутался, когда пытаюсь читать код. – Marcus

Смежные вопросы