显示多个表';在SQL Server中的单个单元格中存储数据

显示多个表';在SQL Server中的单个单元格中存储数据,sql,sql-server,Sql,Sql Server,我想在一个单元格中显示表中的多个数据。请找到我的表的脚本 DECLARE @Tab TABLE(code VARCHAR(10), name varchar(20), val1 INT) INSERT INTO @Tab VALUES ('A', 'Test', 34) INSERT INTO @Tab VALUES ('B', 'Test', 6) DECLARE @Tab1 TABLE(code VARCHAR(10), name varchar(20), val2 INT) INSERT

我想在一个单元格中显示表中的多个数据。请找到我的表的脚本

DECLARE @Tab TABLE(code VARCHAR(10), name varchar(20), val1 INT)
INSERT INTO @Tab VALUES ('A', 'Test', 34)
INSERT INTO @Tab VALUES ('B', 'Test', 6)

DECLARE @Tab1 TABLE(code VARCHAR(10), name varchar(20), val2 INT)
INSERT INTO @Tab1 VALUES ('A','Test', 178)

DECLARE @Tab2 TABLE(code VARCHAR(10), name varchar(20), Total INT)
INSERT INTO @Tab2 VALUES ('A','Test', 180)
INSERT INTO @Tab2 VALUES ('B', 'Test', 10)


DECLARE @Tab3 TABLE(code VARCHAR(10), name varchar(20), val1 INT)
INSERT INTO @Tab3 VALUES ('A', 'Test1', 56)

DECLARE @Tab4 TABLE(code VARCHAR(10), name varchar(20), val2 INT)
INSERT INTO @Tab4 VALUES ('A','Test1', 87)

DECLARE @Tab5 TABLE(code VARCHAR(10), name varchar(20), Total INT)
INSERT INTO @Tab5 VALUES ('A','Test1', 93)
我想以如下格式在单个单元格中显示数据:-

谢谢

希望这对你有帮助

With T (code, [name], val1, val2, total)
AS
(
Select code, [name], val1, 0, 0 from @Tab 
Union
Select code, [name], 0, val2, 0 from @Tab1 
Union
Select code, [name], 0, 0, Total from @Tab2 
Union
Select code, [name], val1, 0, 0 from @Tab3 
Union
Select code, [name], 0, val2, 0 from @Tab4 
Union
Select code, [name], 0, 0, Total from @Tab5 
), 
T2 (code, [name], total, val1, val2)
AS
(
Select code, [name], total = sum(total), val1 = sum(val1), val2 = sum(val2)
from T group by code, [name] 
)
Select code, 
IsNull(Min( case [name] when 'Test' then CONCAT('Total ', total, '(val1:', val1, ',val2:', val2,')')  end ), 'Total 0(val1:0,val2:0)') Test,
IsNull(Min( case [name] when 'Test1' then CONCAT('Total ', total, '(val1:', val1, ',val2:', val2,')') end ), 'Total 0(val1:0,val2:0)') Test1 
from T2 
Group By code 

您是初学者还是对sql有一定的了解?我想你只是从一些我是初学者的地方复制了这些陈述,但我需要向work提出这个问题我们不回答你的学业。我们帮助并纠正错误和问题-因此您必须首先完成您的部分…基本概念是使用
UNION ALL
将所有这些行粘在一起,然后使用某种交叉表将所有这些行转换为列。我建议你试着学习如何使用
UNION ALL
,然后发回你的努力。事实上,你的另一个问题向你展示了如何做数据透视(交叉表的另一个名称)。我建议你使用UNION ALL,而不是UNION,或者至少理解其中的区别