解答:要解决此题,咱们能够使用HAVING和GROUP BY字句,而后将Tenants以INNER JOIN链接起来。函数
SELECT TenantNameui
FROM Tenantssed
INNER JOINim
(SELECT TenantID查询
FROM AptTenantsimg
GROUP BY TenantsIDdi
HAVING count(*)>1 ) Cant
ON Tenants.TenantID=C.TenantIDco
注:每当编写GROUP BY字句时,务必确保SELECT字句里的任何东西,要么是汇集函数,要么就是包含在GROUP BY子句里。
二、编写SQL查询,列出全部建筑物,并取状态为"Open"的申请数量。(Requests 表中Status为Open的条目)
此题直接将Requests和Apartments链接起来,就能列出建筑物ID,并取得Open申请的数量。
SELECT BuildingName, ISNULL(Count, 0) as'Count'
FROM Buildings
LEFT JOIN
(SELECT Apartments.BuildingID,count(*) as 'Count'
FROM Requests INNER JOIN Apartments
ON Requests.AptID=Apartments.AptID
WHERE Requests.Status = 'Open'
GROUP BY Apartments.BuildingID) ReqCounts
ON ReqCounts.BuildingID=Buildings.BuildingID
11号建筑物正在进行大翻修。编写SQL查询,关闭这栋建筑物里全部公寓的入住申请。
跟SELECT查询同样,UPDATE查询也能够有WHERE子句。要实现这个查询,咱们会获取11号建筑物里全部公寓的ID,而后从这些公寓取得入住申请列表。
UPDATE Requests
SET Status='Closed'
WHERE AptID IN
(SELECT AptID
FROM Apartments
WHERE BuildingID=11)