簡體   English   中英

如何使用SQL Server和Reporting Services構建包含total和breakout列的報表

[英]How to bulid a report with a total and breakout columns with SQL Server and Reporting Services

我有一個數據結構,我有兩個表Alpha和Beta,它們是一對多。 為了舉個例子,我們假設表格alpha有一個“State”列,而表B有“你喜歡的顏色”,你可以選擇多個。 我想構建一個包含這樣的列的報告:

STATE          TOTAL     RED     GREEN     BLUE
Alaska         5         1       3         1
Florida        2         2       2         0
New York       10        5       8         1

列TOTAL將是Alpha中記錄的計數,正如您所看到的,由於一對多關系,顏色的總和可能超過計數。 我想如果人們不喜歡顏色,它可能會更少。

你會如何建立這樣的報告。 我將在.NET中使用SQL Server和Reporting Services,因此它可以是一個復雜的查詢,我只是將其轉儲到數據表報告中,或者是一個不太復雜的查詢,其中包含一些計數和總計完成的報告。 我真的不知道解決這個問題的最佳方法。

由於您不知道哪些顏色將成為列,因此您應使用Matrix Control

您需要設置查詢

SELECT 
    a.State,
    b.ColorName,
    COUNT(b.ColorID) ColorCount
FROM
    alpha a
    LEFT JOIN beta b
    ON a.id = b.a_id
GROUP BY 
    a.State,
    b.ColorName

只需拖動行的狀態,列的顏色和數據的Count(ColorID)Count(ColorID)將顯示在數據字段中))

注意:如果要正確顯示0值,則需要LEFT JOIN和Count(ColorID)而不是Count(*)。

如果您確實知道顏色,可以使用PIVOT或總和案例技術

SELECT state SUM(CASE WHEN Color = 'RED' THEN 1 ELSE 0 END) as Red, ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM