从查询中,我得到以下结果:
Machine 1, Product A, 1 pal
Machine 1, Product B, 2 pal
Machine 1, Product C, 3 pal
Machine 2, Product D, 2 pal
Machine 2, Product E, 2 pal
Machine 3, Product F, 1 pal
我想创建一个如下所示的报告:
Machine 1 | Machine 2 | Machine 3
Product A | Product D | Product F
1 pal | 2 pal | 1 pal
Product B | Product E |
2 pal | 2 pal
Product C
3 pal
我知道上面的格式很糟糕,但它提出了一个想法。我想这与New group in New column中的问题相同,但使用其他技术。有人能帮忙吗?非常感谢,谢谢!
答案 0 :(得分:1)
以下是使用SSRS Matrix
报表项和SQL Server ROW_NUMBER
函数实现此目的的一种可能方法。以下示例显示了如何完成此操作。该示例使用 SSRS 2005
与 SQL Server 2008 R2
数据库。
分步流程: SSRS 2005
创建了一个名为dbo.GroupColumns
的表,表示您提供的数据,如屏幕截图# 1 所示。在SQL Scripts部分下提供了表的脚本。
创建了屏幕截图# 2 中显示的查询,该查询将用于创建SSRS数据集。查询在 SSRS数据集查询部分下提供。屏幕截图# 2 显示Management Studio中的查询输出。该查询使用ROW_NUMBER()
函数指定按Machine
和Machine
排序的给定Product
内的序号。
在SSRS报告中,放置Matrix
报告项目。请参阅屏幕截图# 3 。
将数据集中的RowRank
,Machine
和Product
值拖放到Matrix上,如屏幕截图# 4 所示。
右键单击包含“产品”值的单元格,然后选择添加行,如屏幕截图# 5 所示。将添加新的第二列以及新行。
将数据集中的Units
列拖放到Matrix上,如屏幕截图# 6 所示。
将第二个矩阵列的宽度属性设置为0 (zero)
,因为我们不想显示该列。即使将其设置为零,该值也将更改为0.03125 in
。屏幕截图# 7 在应用一些格式和着色后显示Matrix报表项。
希望有所帮助。
SQL脚本:
CREATE TABLE [dbo].[GroupColumns](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Machine] [varchar](10) NULL,
[Product] [varchar](10) NULL,
[Units] [varchar](10) NULL,
CONSTRAINT [PK_GroupColumns] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO
SSRS数据集查询:
SELECT ROW_NUMBER() OVER(
PARTITION BY Machine
ORDER BY Machine
, Product
) AS RowRank
, Id
, Machine
, Product
, Units
FROM dbo.GroupColumns
屏幕截图#1:
屏幕截图#2:
屏幕截图#3:
屏幕截图#4:
屏幕截图#5:
屏幕截图#6:
屏幕截图#7:
屏幕截图#8:
答案 1 :(得分:0)
如果我正确理解了您的问题,您可以使用Matrix控件实现此目的。只需将机器字段放在列组中,然后将产品和pal字段放在详细信息组中。您可以在表达式中使用“= 1”存根行组。