[英]SSRS comparison of two datasets for “Difference Table”
我们正在推出连接到新服务器的新Symantec客户端。 我建立了一个报告,显示推出状态。
到现在为止还挺好。 现在,我尝试报告在新环境中不可见的服务器。
查询我需要的东西的数据集已经存在。
字段的服务器名称值相同。
我的目标是比较一个表:
并将服务器名称仅写到不在两者中的表中。
需要此功能来检查哪个服务器尚未加入新环境。
对不起,希望您理解我的意思。 SSRS对我来说很新。 在所附的屏幕截图中,您可以看到我现在拥有的第一份报告:
创建第一个报告
可视概述数据库的“关系”
您可以像这样完全连接。
WITH
sepm_server_list
AS
(
SELECT tbl.* FROM (VALUES
( 'SEPM', 'Server1')
, ( 'SEPM', 'Server2')
, ( 'SEPM', 'Server3')
, ( 'SEPM', 'Server4')
) tbl ([DatabaseName], [ServerName])
)
,
sccm_server_list
AS
(
SELECT tbl.* FROM (VALUES
( 'SCCM', 'Server1')
, ( 'SCCM', 'Server2')
, ( 'SCCM', 'Server3')
, ( 'SCCM', 'Server5')
) tbl ([DatabaseName], [ServerName])
)
SELECT
sepm.*
, sccm.*
FROM
sepm_server_list AS sepm
FULL JOIN sccm_server_list AS sccm ON sepm.[ServerName] = sccm.[ServerName]
WHERE
1=1
AND
(
sepm.[ServerName] IS NULL
OR
sccm.[ServerName] IS NULL
)
或者,您也可以将其写为带有联合的except语句,以获取同一列中的值。
WITH
sepm_server_list
AS
(
SELECT tbl.* FROM (VALUES
( 'SEPM', 'Server1')
, ( 'SEPM', 'Server2')
, ( 'SEPM', 'Server3')
, ( 'SEPM', 'Server4')
) tbl ([DatabaseName], [ServerName])
)
,
sccm_server_list
AS
(
SELECT tbl.* FROM (VALUES
( 'SCCM', 'Server1')
, ( 'SCCM', 'Server2')
, ( 'SCCM', 'Server3')
, ( 'SCCM', 'Server5')
) tbl ([DatabaseName], [ServerName])
)
SELECT DatabaseName = 'SEPM', A.[ServerName] FROM
(
SELECT [ServerName] FROM sepm_server_list
EXCEPT
SELECT [ServerName] FROM sccm_server_list
) A
UNION
SELECT DatabaseName = 'SCCM', B.[ServerName] FROM
(
SELECT [ServerName] FROM sccm_server_list
EXCEPT
SELECT [ServerName] FROM sepm_server_list
) B
这是您发布的查询的示例。
WITH
sepm_server_list
AS
(
SELECT [DatabaseName] = 'SEPM', [ServerName] = COMPUTER_NAME FROM v_sem_computer
)
,
sccm_server_list
AS
(
SELECT [DatabaseName] = 'SCCM', [ServerName] = F.[Name] FROM (v_Collection AS C LEFT JOIN v_FullCollectionMembership AS F ON F.CollectionID = C.CollectionID) WHERE C.[Name] = 'ALL_SERVERS_neu'
)
SELECT DatabaseName = 'SEPM', A.[ServerName] FROM
(
SELECT [ServerName] FROM sepm_server_list
EXCEPT
SELECT [ServerName] FROM sccm_server_list
) A
UNION
SELECT DatabaseName = 'SCCM', B.[ServerName] FROM
(
SELECT [ServerName] FROM sccm_server_list
EXCEPT
SELECT [ServerName] FROM sepm_server_list
) B
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.