Sql server SSRS中的动态列取决于SQL Server中的数据?
我有两张桌子,如下所示Sql server SSRS中的动态列取决于SQL Server中的数据?,sql-server,visual-studio,reporting-services,Sql Server,Visual Studio,Reporting Services,我有两张桌子,如下所示 Vehicle Brand Acquired Year A001 Toyota 2018 A002 BMW 2019 A003 Honda 2019 Vehicle Maintenance Year Maintenance Cost A001 2018 5000 A001 2019
Vehicle Brand Acquired Year
A001 Toyota 2018
A002 BMW 2019
A003 Honda 2019
Vehicle Maintenance Year Maintenance Cost
A001 2018 5000
A001 2019 7000
A001 2020 3000
A002 2020 8000
A003 2019 3000
A003 2020 2000
我想要一份这样的报告:
Vehicle Brand Acquired Year 2018 2019 2020
A001 Toyota 2018 5000 7000 3000
A002 BMW 2019 0 0 8000
A003 Honda 2019 0 3000 2000
其中,前三列之后的列是动态的,取决于表2中的维护年份。这些列的数据是相应维护年度的维护成本
有人能提供一些指导吗?我用下面的数据集查询重新创建了您的示例数据
DECLARE @v TABLE(Vehicle varchar(10), Brand varchar(10), [Acquired Year] int)
DECLARE @m TABLE(Vehicle varchar(10), [Maintainence Year] int, [Maintainence Cost] int)
INSERT INTO @v VALUES
('A001', 'Toyota', 2018),
('A002', 'BMW', 2019),
('A003', 'Honda', 2019)
INSERT INTO @m VALUES
('A001', 2018, 5000),
('A001', 2019, 7000),
('A001', 2020, 3000),
('A002', 2020, 8000),
('A003', 2019, 3000),
('A003', 2020, 2000)
SELECT
v.Vehicle, v.Brand, v.[Acquired Year], m.[Maintainence Year], m.[Maintainence Cost]
FROM @v v
JOIN @m m on v.Vehicle = m.Vehicle
这给了我们总共6行数据集的输出,如下所示
Vehicle Brand Acquired Year Maintainence Year Maintainence Cost
A001 Toyota 2018 2018 5000
A001 Toyota 2018 2019 7000
A001 Toyota 2018 2020 3000
A002 BMW 2019 2020 8000
A003 Honda 2019 2019 3000
A003 Honda 2019 2020 2000
注意:我们不需要在这里做任何动态的事情,如果年数增加,报告的矩阵控制将为我们做到这一点,因此报告中的列数不需要我们做任何事情
创建新报告。
添加一个新的数据集,并将数据集查询设置为上面的脚本或提供与实际数据相同的结果布局的内容
然后在报告中添加矩阵控件
将车辆从数据集字段列表拖动到“行”占位符
将维护年份拖到“列”占位符
将维护成本拖到“数据”占位符
接下来,右键单击车辆文本框并选择Insert column=>Inside Group-right,然后单击新单元格并从列表中选择“Brand”
每年重复一次。当您这样做时,由于年份是数字,SSRS将添加一个求和表达式,您需要对此进行更改。在表达式上单击鼠标右键,然后将其从
=萨姆菲尔德!获得的年价值
到
=第一场!获得的年价值
最终的设计应该是这样的
当我们运行报告时,我们得到了这个
SSRS为您提供了一个解决方案。@DaleK我已经读过了。顺便说一句,对于我的报告,我需要为矩阵设置一行吗?我不知道设置一行是什么意思,但您将按车辆、品牌和购买年份对行进行分组。然后按维护年/维护成本创建列。您不需要在SQL中创建列,SSRS矩阵将为您提供Google SSRS矩阵教程