解答:要解決此題,咱們能夠使用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)