簡體   English   中英

SQL Server Management Studio - 將包含軟件名稱和版本的列添加到具有特定軟件的系統的 SQL 查詢

[英]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.

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