0
这是数据库:中期解决方案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)
问的问题是...
给最后的名字,谁在两个 或工作的未婚员工的SSN更多的项目。
SELECT e.Lname, e.ssn
FROM Employee AS e
WHERE e.ssn IN (
SELECT w.essn
FROM works_on w
GROUP BY w.essn
HAVING count(*) >= 2
)
AND e.ssn NOT IN (
SELECT essn
FROM dependent
WHERE relationship = 'Spouse'
);
我的回答是错误的,因为我没有使用e.ssn NOT IN
条款。
我的问题是:
1)什么是group by
用于?严格只适用于作品?
2)关于FROM Employee AS e
,是AS
一个错字或命令?
3)having
是否包含?它可以被其他命令取代吗?
嘿杰夫如果你有时间你可以回答我有其他问题,我不能问另一个问题,但在Stackoverflow的问题 –
有没有我可以达到你的电子邮件地址? –
我用它来说,HAVING就像集合函数的WHERE。 – jarlh