2

私は自分のデータベース クラスの関係代数を理解しようとしていますが、ここで誰かが私が行ったことを見て、何が正しくて何が正しくないかを理解するのを手伝ってくれるかどうか疑問に思っていました。

私が解決しようとしているのは、部門ごとに、その部門のすべての従業員の名前と最低および最高の給与範囲を取得することです。

テーブルのセットアップ:

Employee(Fname, Minit, Lname, Ssn, Bdate, Address, Sex, Salary, Super_ssn, Dno)
Department(Dname, Dnumber, Mgr_ssn, Mgr_start_date)

SQL:

Select Dname, Min(Salary), Max(Salary)    
from EMPLOYEE, DEPARTMENT    
Where Dnumber = Dno    
Group by Dname    

関係代数 (ステップ、1 行に 1 つのオペランド):

  • 給与 ← π(Dno, Salary)[EMPLOYEE]
  • 部署 ← π(Dname, Dnumber)[DEPARTMENT]
  • SalariesD ← Salaries JOIN(Symbol wnt work)(Dno=Dnumber) 部署
  • 選択 ← π(Dname, Min(給与), Max(給与))[SalariesD]
  • 結果 ← グループシンボル(Dname)[選択]

整形でごめんなさい。これで正しい軌道に乗っているかどうか教えてください。

4

1 に答える 1

0

これもいいかも……と思います。

select a.Fname,Max(a.Salary),Min(a.Salary)
from Employee a
join Department b on a.Dno = b.Dnumber
group by Dname
于 2013-10-21T06:27:14.787 に答える