问题:显示预订时间最长的客户的名称。
提供的表格,
CLIENT (ClientNo, Name, Sex, DOB, Address, Phone, Email, Occupation,
MaritalStatus, Spouse, Anniversary)
RESERVATION (ResNo, ResDate, NoOfGuests, StartDate, EndDate,
ClientNo, Status)
到目前为止我做的是这个,
SELECT * FROM (
SELECT C.Name
FROM Client C, Reservation R
Where C.ClientNo = R.ClientNo
ORDER BY R.EndDate - R.StartDate DESC)
WHERE rownum = 1;
它给了我想要的结果,但我被告知“没有内置的ORACLE列编号(例如ROWNUM)或其他Oracle排名设施 (例如RANK)可以在这里使用。“
答案 0 :(得分:1)
好的,我解决了。谢谢你的暗示。我使用了MAX()函数。
SELECT C.Name
FROM Client C, Reservation R
WHERE C.ClientNo = R.ClientNo AND
R.EndDate-R.StartDate = (
SELECT MAX(R.EndDate-R.StartDate)
FROM Reservation R);