我已经获得了一个数据库分配,它涉及第一次使用查询来查找特定结果
我要问各州
“编写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,因为它使结果转到空表。我正在使用正确的查询来获得我正在寻找的答案吗?
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”语句并添加客户端的姓氏。我会保持小组或选择不同,所以它只会返回唯一的记录。你应该好!