sql-server - SSRS 从每个合并的数据集中查找缺失的项目
问题描述
所以我有两个数据集。我使用 Lookup 函数SSRS
将数据集合并到一个tablix
. 但就我而言,我可能在任一数据集中都缺少项目。例如,我使用序列号作为我的唯一标识符。然而,数据集 1 可能有两个或三个序列号,它们不在数据集 2 中。这很容易,因为它Lookup
只会产生NULL
,所以它是可见的。但也有可能数据集 2 的序列号不在数据集 1 中。有没有办法在单个中显示这个,tablix
或者我是否必须有两个报告,每个报告都有一个reversed lookup
到其他数据放?MS SQL Server
如果重要的话,这两个数据集都是使用来自不同数据库的查询创建的。
解决方案
我从未使用过报告服务,但从查询的角度来看,我会使用公用表表达式并执行以下操作。可能不是性能最好的解决方案,但它至少非常易读:)
CREATE TABLE #a (SerialNumber int primary key);
CREATE TABLE #b (SerialNumber int primary key);
INSERT INTO #a VALUES(1),(2),(3);
INSERT INTO #b VALUES(3),(4),(5);
WITH cte_all AS (
SELECT * FROM #a
UNION ALL
SELECT * FROM #b
), cte_distinct AS (
SELECT DISTINCT *
FROM cte_all
)
SELECT
*,
CASE
WHEN a.SerialNumber IS NOT NULL and b.SerialNumber IS NOT NULL
THEN 'Exists in both'
WHEN a.SerialNumber IS NOT NULL and b.SerialNumber IS NULL
THEN 'Only exists in A'
WHEN a.SerialNumber IS NULL and b.SerialNumber IS NOT NULL
THEN 'Only exists in B'
END AS Comment
FROM
cte_distinct c
LEFT JOIN #a a ON a.SerialNumber = c.SerialNumber
LEFT JOIN #b b ON b.SerialNumber = c.SerialNumber;
DROP TABLE #a;
DROP TABLE #b;
这将产生以下结果:
推荐阅读
- kotlin - 如何从请求中获取数据
在使用 Vollely 库的其他类中, - networking - 如何让传感器/海龟运行功能优先考虑当前最高能量的传感器/海龟?网标
- nestjs - 如何使用 { scope: Scope.REQUEST } 对服务上的每个请求调用方法?
- python - 熊猫:无法根据其他列的条件设置单元格值
- php - 在循环中渲染树枝组件
- c++ - Code Chef DSA 学习系列 : Multiple of 3 Multhree
- postgresql - 将 hasura 连接到现有的 postgresql
- python - 安装 scikit-image 时如何解决此错误?
- postgresql - On any of my Heroku apps, several `heroku pg:` commands fail immediately with "Cannot read property 'includes' of undefined."
- php - change the final number of the permalink by +1 php