我被分配了一个数据库任务,其中涉及第一次使用查询来查找特定结果
问题由国家承担
“编写一条SQL语句以列出所有已被 由一个或多个客户查看。更准确地说,列出邮政编码, propertyNo,物业的街道,员工的姓氏 负责此属性,客户的姓氏和查看 日期。首先按邮政编码排序输出,然后按街道排序 (需要截图)。“
我拥有的代码:
SELECT Viewing.propertyNo, PropertyForRent.street, PropertyForRent.postcode, Staff.lName
FROM Viewing
INNER JOIN PropertyForRent ON Viewing.propertyNo = PropertyForRent.propertyNo
INNER JOIN PrivateOwner ON PropertyForRent.ownerNo = PrivateOwner.ownerNo
INNER JOIN Staff ON PropertyForRent.staffNo = Staff.staffNo
INNER JOIN Client ON Viewing.clientNo = Client.clientNo
group by Viewing.propertyNo, PropertyForRent.street, PropertyForRent.postcode, Staff.lName
having COUNT(viewing.propertyNo)>1
大多数情况下结果是正确的,除了我没有添加client.lastname,因为它使结果进入一个空表。我在使用正确的查询来获取我正在寻找的答案吗?
答案 0 :(得分:0)
SELECT pfr.PostCode
,vw.PropertyNo
,pfr.Street
,sf.LName
,ct.LName
,vw.ViewDate
FROM Viewing vw
JOIN PropertyForRent pfr
ON vw.PropertyNo = pfr.PropertyNo
JOIN PrivateOwner po
ON vw.OwnerNo = po.OwnerNo
JOIN Staff sf
ON pfr.StaffNo = sf.StaffNo
JOIN Client ct
ON vw.ClientNo = ct.ClientNo
ORDER BY pfr.PostCode
,pfr.Street
必须重新阅读该问题-很容易被误认为“一个以上的客户”。一个或多个客户意味着您将包括所有视图。特别是因为他们希望您包括客户的信息和查看日期。
删除您的“ HAVING”语句,并添加客户的姓氏。我会保留分组依据或选择不同的分组,因此它只会返回唯一的记录。你应该很好!