[英]SCCM Hardware Reports [if there are multiple values (for all columns) then combine them together] How?
[英]Modifying SCCM reports
SCCM 報告中提供了一條 SQL 語句,用於獲取具有給定網卡的計算機列表。
SELECT SYS.Name0, Netcard.Description0,Netcard.MACAddress0, Netcard.Manufacturer0
FROM fn_rbac_R_System(@UserSIDs) SYS, fn_rbac_GS_NETWORK_ADAPTER(@UserSIDs) Netcard
WHERE SYS.ResourceID = Netcard.ResourceID AND Netcard.Description0 LIKE @variable
ORDER BY SYS.Name0
我想將計算機型號添加到此報告中。 我應該如何修改sql語句?
謝謝
*編輯@SQLChao 有什么我應該查看數據集的嗎?
這是一個冗長的 SQL 查詢,為 sccm 中的一組計算機提取了許多詳細信息。
這將是我想添加到上面的查詢中的內容,但是這個查詢似乎使用了更復雜的語法。
v_GS_COMPUTER_SYSTEM_Alias.Model0 AS [Model]
完整查詢在這里。
v_GS_LOGICAL_DISK_Alias.ResourceID )
where v_GS_LOGICAL_DISK_Alias.ResourceID =v_R_System_Valid_Alias.ResourceID and v_FullCollectionMembership_Alias.CollectionID = @CollectionID) As [Free Disk Space (MB)]
from fn_rbac_R_System_Valid(@UserSIDs) v_R_System_Valid_Alias
inner join v_GS_OPERATING_SYSTEM v_GS_OPERATING_SYSTEM_Alias on (v_GS_OPERATING_SYSTEM_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
left join v_GS_SYSTEM_ENCLOSURE_UNIQUE v_GS_SYSTEM_ENCLOSURE_UNIQUE_Alias on (v_GS_SYSTEM_ENCLOSURE_UNIQUE_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
LEFT join v_GS_COMPUTER_SYSTEM v_GS_COMPUTER_SYSTEM_Alias on (v_GS_COMPUTER_SYSTEM_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
LEFT join v_GS_X86_PC_MEMORY v_GS_X86_PC_MEMORY_Alias on (v_GS_X86_PC_MEMORY_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
LEFT join v_GS_PROCESSOR v_GS_PROCESSOR_Alias on (v_GS_PROCESSOR_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
inner join v_FullCollectionMembership v_FullCollectionMembership_Alias on (v_FullCollectionMembership_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
left join fn_rbac_Site(@UserSIDs) v_Site_Alias on (v_FullCollectionMembership_Alias.SiteCode = v_Site_Alias.SiteCode)
LEFT join v_GS_LOGICAL_DISK v_GS_LOGICAL_DISK_Alias on (v_GS_LOGICAL_DISK_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID) and v_GS_LOGICAL_DISK_Alias.DeviceID0=SUBSTRING(v_GS_OPERATING_SYSTEM_Alias.WindowsDirectory0,1,2)
left join v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP_Alias on (v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP_Alias.ResourceID = v_R_System_Valid_Alias.ResourceID)
Where v_FullCollectionMembership_Alias.CollectionID = @CollectionID
Order by v_R_System_Valid_Alias.Netbios_Name0
它應該與類似的東西一起工作
SELECT
SYS.Name0,
SYS.Model0,
Netcard.Description0,
Netcard.MACAddress0,
Netcard.Manufacturer0
FROM
(
SELECT
S.ResourceID,
S.Name0,
C.Model0
FROM
fn_rbac_R_System(@UserSIDs) S
LEFT JOIN
V_GS_COMPUTER_SYSTEM C
ON
S.ResourceID = C.ResourceID
) SYS,
fn_rbac_GS_NETWORK_ADAPTER(@UserSIDs) Netcard
WHERE
SYS.ResourceID = Netcard.ResourceID
AND
Netcard.Description0 LIKE @variable
ORDER BY
SYS.Name0
也可以在整個舊查詢之后離開連接:
SELECT
t1.*,
c.Model0
FROM
(
SELECT
SYS.ResourceID,
SYS.Name0,
Netcard.Description0,
Netcard.MACAddress0,
Netcard.Manufacturer0
FROM
fn_rbac_R_System(@UserSIDs) SYS,
fn_rbac_GS_NETWORK_ADAPTER(@UserSIDs) Netcard
WHERE
SYS.ResourceID = Netcard.ResourceID
AND
Netcard.Description0 LIKE @variable
) t1
LEFT JOIN
V_GS_COMPUTER_SYSTEM c
ON
t1.ResourceID = c.ResourceID
ORDER BY t1.Name0
我不是 SQL 專家,不知道在這種情況下哪個更可取,但對於普通的 sccm db 來說,兩者都應該是可以接受的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.