我正在 SSRS 中整理一份报告。该数据集由 MS SQL 服务器的 SQL 查询填充。它使用 Union All 查询几个相似的表。问题是存在一些信息丢失。不同的表对应不同的工作地点,但这些表中没有一列包含该地点的名称;识别站点的唯一方法是通过表名。在作为 Union All 的结果的组合列中,无法判断哪些行来自哪个站点。
有没有办法改变我的查询以向结果添加一列,该列将具有与每行关联的工作站点?我无法将其添加到原始表中,因为我具有只读权限。我想过这样的事情,但我不知道该使用什么样的表达方式,或者是否可以做到:
SELECT t1.column, t1.column2
FROM t1
<some expression>
UNION ALL
SELECT t2.column, t2.column2
FROM t2
<some expression>
UNION ALL
...
表达式将“添加”一列,该列将添加与查询的每个部分关联的站点名称。这个或其他任何东西可以用来获取网站名称吗?
在构建查询时手动添加它:
SELECT 'Site1' AS SiteName, t1.column, t1.column2
FROM t1
UNION ALL
SELECT 'Site2' AS SiteName, t2.column, t2.column2
FROM t2
UNION ALL
...
EXAMPLE:
DECLARE @t1 TABLE (column1 int, column2 nvarchar(1))
DECLARE @t2 TABLE (column1 int, column2 nvarchar(1))
INSERT INTO @t1
SELECT 1, 'a'
UNION SELECT 2, 'b'
INSERT INTO @t2
SELECT 3, 'c'
UNION SELECT 4, 'd'
SELECT 'Site1' AS SiteName, t1.column1, t1.column2
FROM @t1 t1
UNION ALL
SELECT 'Site2' AS SiteName, t2.column1, t2.column2
FROM @t2 t2
RESULT:
SiteName column1 column2
Site1 1 a
Site1 2 b
Site2 3 c
Site2 4 d
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)