[英]SQL 'SELECT' Statement with Calculated Column
我正在開發一個IT支持管理數據庫。 以下SQL查詢涉及兩個表。 “設備”表包含公司擁有的所有PC,“服務”表是在設備上執行的每個服務的列表(即每個設備可以具有多個服務)。
我希望此查詢檢索entire 'devices' table
,但要包括一個額外的列,該列顯示每個device
的services
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
我應該使用哪種方法來實現這一目標? 在此先感謝您的指導或幫助!
如果要從devices
表dbo.devices
所有行,則dbo.devices
應該出現在Left outer Join
dbo.devices
Left outer Join
的Left 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.