[英]SQL Server Management Studio - Add columns containing software name and version to SQL Query for systems with specific software
我正在使用 Microsoft SQL Server Management Studio 在 SQL Server 數據庫中查詢具有特定軟件的計算機。 不幸的是,我對 SQL 完全陌生,所以我正在努力學習。 感謝Prajwal 網站上的幫助,我能夠創建一個基本查詢。
不過我想稍微改進一下。 我想要兩個額外的列來顯示軟件名稱和軟件版本。
首先,這是我目前的代碼:
SELECT DISTINCT
sys.Netbios_Name0 AS [Computer Name],
sys.User_Name0 AS [User Name]
FROM
v_R_System sys
JOIN
v_Add_Remove_Programs arp ON sys.ResourceID = arp.ResourceID
WHERE
sys.ResourceID IN (SELECT sys.ResourceID
FROM v_R_System sys
JOIN v_Add_Remove_Programs arp ON sys.ResourceID = arp.ResourceID
WHERE DisplayName0 LIKE '%Adobe Reader%')
這將返回以下輸出:
Computer Name | User Name
--------------+-----------
COMPUTER001 | Jane Doe
COMPUTER002 | John Doe
但是,我希望輸出如下例所示,其中包含 where 語句中的軟件名稱及其版本:
Computer Name | User Name | Software | Version
--------------+-----------+--------------+---------
COMPUTER001 | Jane Doe | Adobe Reader | v.XXX
COMPUTER002 | John Doe | Adobe Reader | v.XXX
我曾嘗試將這些屬性添加到我的 Select 語句中:
SELECT DISTINCT
sys.Netbios_Name0 AS [Computer Name],
sys.User_Name0 AS [User Name],
arp.DisplayName0 AS [Software],
arp.Version0 AS [Version]
但這會返回計算機擁有的每個軟件,如下所示:
Computer Name | User Name | Software | Version
--------------+-----------+--------------+--------
COMPUTER001 | Jane Doe | Adobe Reader | v.XXX
COMPUTER001 | Jane Doe | Firefox | v.XXX
COMPUTER001 | Jane Doe | Chrome | v.XXX
我需要它只是為了提供我查詢的特定軟件。 我在互聯網上搜索過是否能找到任何可以幫助我的東西,並開始學習一些 SQL 基礎知識,但到目前為止還沒有多少運氣。 我將繼續研究和工作,但如果有人能給我任何提示或建議,我將不勝感激!
順便說一句,我已經設法在 SCCM 中成功創建了查詢,但我不太確定如何將 WQL 轉換為 SQL,並且工作需要我在 SSMS 中進行查詢。
如果我理解正確,您實際上並不需要內部查詢(順便說一句,這是不好的做法,應該不惜一切代價避免,因為此查詢在每一行上運行)。 您可以將查詢簡化為下面的代碼以實現您的需求。
SELECT DISTINCT
sys.Netbios_Name0 AS [Computer Name],
sys.User_Name0 AS [User Name],
arp.DisplayName0 AS [Software],
arp.Version0 AS [Version]
FROM v_R_System sys
JOIN v_Add_Remove_Programs arp ON sys.ResourceID = arp.ResourceID
WHERE arp.DisplayName0 LIKE '%Adobe Reader%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.