2011-06-23 116 views
0

讓想我的SQL查詢的結果是如何顯示雙分組報告

Colour size week 1 week2 week 3 


Black  x  1  2  3 

white  xx  1  1  0 

yellow  large 2  1  0 

我要生成從該查詢像這樣的報告。

   week 1    week 2    week 3 
    ---------------------------------------------------------------- 
      x xx large  x xx large  x xx large 
    ----------------------  --------------  -------------            
    black 1  0 0   2 0 0   3 0  0 

    white 1  0 0   0 1 0   0 0  0 

    yellow 2  0 0   0 2 0   0 0  0 

我有這種想法的可能性!

  1. 在RDLC報告在運行時更改的報告XML。(很複雜的大小和顏色是隨機的)

  2. 在Crystal報表每個星期,在最後一場他們爲創建新的報告主報告中的子報表(這是否有效,如果我必須創建15周或更長時間的報告)。

  3. 創建每個星期的交叉選項卡並將它們對齊,使其看起來像上面的報告。

請問一些正文提示我以上述格式生成報告的最佳方法是什麼?是我缺少的東西。

回答

1

這可以使用分組來完成,但這需要花費很大的努力。假設周列是靜態的,那麼基本上需要按每個數據列(周,大小,顏色)進行分組,然後將小標題放在小組頁腳中,並將彙總或運行總計的值放到需要它們的位置。

第一部分故意含糊不清,因爲詳細描述這些內容會非常複雜,所以我打算提出不同的解決方案。相反,你可以使用交叉表,但由於你的sql目前正在構建,我相信每個星期都需要一個單獨的交叉表。

我建議,它基於一些假設,但我假設你有能力控制進入報表的sql查詢。如果你能我相信最好重新格式化SQL查詢,讓交叉表做所有的工作,而不是自己打破數週。在我的答案的第一部分中,我假設這幾周是靜態的,但我猜測這不是最終的解決方案,在這種情況下,我認爲如果您使用數據輸出,則應該能夠創建一個交叉表,允許您將您的星期顯示爲列。

Color size week amt 

Black  x  1  1 
Black  x  2  2 
Black  x  3  3 
white  xx  1  1  
white  xx  2  1 
white  xx  3  0 
yellow  large 1  2 
yellow  large 2  1 
yellow  large 3  0 

這是未經測試的,所以不要拍我,但我相信這個佈局,你只需讓周和大小列的交叉表,色域的行列部分中的字段交叉標籤部分以及彙總字段部分中的金額。

在我提出解決方案並理解我沒有在這種情況下,但一般情況下,我嘗試回答這裏提出的問題,但如果您有能力修改報表接受的sql查詢,我相信這是更好的解決方案。如果您有任何問題,請告訴我。希望這可以幫助。