編寫SQL查詢,列出租住不止一套公寓的承租人

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

相關文章
相關標籤/搜索