2011-06-07 118 views
1

從查詢,我得到這些結果:報告服務2005年:集團爲列

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

下面是使用SSRS Matrix報告項目與SQL Server ROW_NUMBER函數結合實現此目的的一種可能方法。以下示例顯示瞭如何完成此操作。該示例使用SSRS 2005SQL Server 2008 R2數據庫。

步驟一步的過程:SSRS 2005

  1. 創建名爲dbo.GroupColumns表表示你提供如圖截圖#的數據。 SQL腳本部分提供了表的創建腳本。

  2. 創建了一個查詢,如截圖#,將用於創建SSRS數據集。查詢在SSRS數據集查詢部分提供。屏幕截圖#顯示Management Studio中的查詢輸出。查詢使用ROW_NUMBER()函數來分配MachineProduct排序的給定Machine內的連續數字。

  3. 在SSRS報告中,放置一個Matrix報告項目。請參閱屏幕截圖#。

  4. 拖動並如圖截圖#丟棄從該數據集到矩陣RowRankMachineProduct值。在包含產品值的小區

  5. 右鍵單擊並選擇添加行如圖截圖#。新的第二列將隨新行一起添加。

  6. 將數據集中的Units列拖放到Matrix上,如截圖#所示。

  7. 設置寬度財產上第二矩陣列0 (zero),因爲我們不想顯示該列。即使它設置爲零,該值也會變爲0.03125 in。屏幕截圖#顯示應用某些格式化和着色後的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:

1

截圖#2:

2

截圖#3:

3

截圖#4:

4

截圖#5:

5

截圖#6:

6

截圖#7:

7

截圖#8:

8

+0

太好了,這解決了問題!添加rownumber作爲一個小組做了竅門,謝謝! – 2011-06-14 07:38:40

0

如果我正確理解您的問題,您可以使用Matrix控件來實現此目的。只需將機器字段放入列組中,然後將產品和副本字段放置在詳細信息組中。您可以在表達式中將「= 1」的行組存根。

+0

親近但並不完全正確呢。如果按「= 1」分組,則只顯示第一行。如果我按「= RowNumber(Nothing)」進行分組,則所有數據都會顯示,但矩陣中有間隙,例如。 [鏈接](http://imgur.com/g7d8D) – 2011-06-10 08:02:18