簡體   English   中英

帶計算列的SQL'SELECT'語句

[英]SQL 'SELECT' Statement with Calculated Column

我正在開發一個IT支持管理數據庫。 以下SQL查詢涉及兩個表。 “設備”表包含公司擁有的所有PC,“服務”表是在設備上執行的每個服務的列表(即每個設備可以具有多個服務)。

我希望此查詢檢索entire 'devices' table ,但要包括一個額外的列,該列顯示每個deviceservices total

我想出的以下說法可能很不正確。 對於每一行,它返回'services'表中記錄總數的計數(即每行相同),而不是對每個設備進行分組/過濾。

SELECT *,
       (SELECT Count(services.id)
        FROM   dbo.services
               LEFT JOIN devices
                      ON services.assetID = devices.assetID
        GROUP  BY devices.assetID) AS TotalServices
FROM   dbo.devices 

我應該使用哪種方法來實現這一目標? 在此先感謝您的指導或幫助!

如果要從devicesdbo.devices所有行,則dbo.devices應該出現在Left outer Join dbo.devices Left outer JoinLeft outer Join

刪除subquery並將其設置為Left outer join assetID Left outer join然后計算每個assetID的服務assetID 嘗試這個。

SELECT devices.assetID,
       TotalServices=Count(services.id)
FROM   dbo.devices
       LEFT JOIN dbo.services
              ON services.assetID = devices.assetID
GROUP  BY devices.assetID 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM