0

我正在寻找如何将一个查询的结果组合到另一个以 TRC 格式表示的查询中。我将在下面发布问题以及数据库的结构。

问题

Retrieve the names of employees who make at least $10,000 more than the employee who is paid the least in the Company.

数据库设置

EMPLOYEE: fname , minit , lname, ssn , bdate , address , sex , salary , superssn , dno
DEPARTMENT: dname dnumber , mgrssn , mgrstartdate
DEPT_LOCATIONS: dnumber , dlocation
PROJECT: pname , pnumber , plocation , dnum
WORKS_ON: essn , pno , hours
DEPENDENT: essn , dependent_name , sex , bdate , relationship

因此,到目前为止,我已经弄清楚了如何从链接如何找到具有最低工资的员工如何找到关系代数、域关系微积分和元组关系微积分的最高/最大的东西,以及来自http://www.cs。 Princeton.edu/courses/archive/spr00/cs425/soln_from_text_midterm.pdf(第 32 页,问题 6、7 和 8 都使用此逻辑,并在后面给出答案)。

我的问题是,我很难获取最低员工的结果,然后将其添加 10000。我相信其余的查询应该很简单。我有以下来生成最低工资员工,但显然这不会返回高于此的员工。

{e1.salary | EMPLOYEE(e1) and NOT (∃e2) (EMPLOYEE(e2) and (e2.salary<e1.salary) ) }

任何帮助,将不胜感激。

非常感谢!

4

2 回答 2

0

我认为您可以直接在 e2.salary 条件下将 10000 添加到 e2.salary + 10000 < e1.salary

于 2013-10-29T04:39:39.040 回答
0

经过进一步审查,我认为以下将解决第二个问题......

{emp.fname, emp.minit, emp.lname | EMPLOYEE(emp) and (∃x) ( EMPLOYEE(x) and NOT (x.salary>emp.salary)) and x.dno=emp.dno)}

虽然我可能需要对此进行修改,但我认为它有基本的想法。从 OOP 的角度来看,它肯定在某种程度上被移除了,并将价值传递到链上。再次感谢!

于 2013-10-29T19:19:29.660 回答