【问题标题】:SSRS tablix show sales vs budgetSSRS tablix 显示销售与预算
【发布时间】:2017-01-22 20:19:26
【问题描述】:

我正在努力理解一种在 SSRS 中正确的 tablix 中获取以下内容的方法。

我想要一份包含以下内容的 tablix 报告。

           NOV 2016         DEC 2016 
           Sales Target     Sales Target 
CustomerA   100   200        400    300

我的数据集都在 SQL Server 2008 R2 中

dataset1 获取销售数字。

Customer  InvoiceDate Salesvalue
CustomerA 05/11/2016  50
CustomerA 04/11/2016  50
etc

dataset2 有目标。

   Customer   date      Target
   CustomerA  11/2016   200
   CustomerA  12/2016   300

我只是无法设法将这两张表“合并”在一起,并将我的目标放在每个月的销售额旁边。

我设法在 powerBI 中完成了它,因为您可以很好地添加关系 在基于额外 DimTimTable 的表之间,我将日期与发票日期链接起来,并添加仅基于月份的过滤器。

我只是想知道我的数据集应该如何查看与月份相关的预算旁边的销售额(基于发票日期)。

所以我很难理解如何对此建模以及 SSRS 和 SQLserver 是否对此正确?我应该为此创建一个“立方体”吗?

【问题讨论】:

    标签: sql sql-server-2008 reporting-services ssrs-2008-r2


    【解决方案1】:

    您可以在 SQL 中执行此操作。

    首先按客户和月份计算您的销售额,注意我使用 datediff/dateadd 来查找该月的第一天

    SELECT Customer, DATEADD(month, DATEDIFF(month, 0, InvoiceDate, 0) as StartMonth, Sum(Salesvalue) as Sales
    FROM dataset1
    GROUP BY Customer, DATEADD(month, DATEDIFF(month, 0, InvoiceDate, 0)
    

    转换您的预测表日期字段,使其保持一致并且具有每月的第一天

    SELECT Customer, CONVERT(date, '01/' + date , 103) as StartMonth, Target
    FROM dataset2
    

    如果您不希望数据中出现空白,您也可以加入日历文件并将其与客户列表加入,这样您就可以在数据透视表中获得所有可能的值。但为简单起见,我只会在两者之间进行外部连接,因为您可能在您的范围内的每个所需月份都有销售或目标。

    SELECT ISNULL(Sales.Customer, Targets.Customer) as Customer, 
     ISNULL(Sales.StartMonth, Targets.StartMonth) as StartMonth,
     Sales, 
     Target
    FROM (SELECT Customer, DATEADD(month, DATEDIFF(month, 0, InvoiceDate, 0) as     StartMonth, Sum(Salesvalue)  Sales 
    FROM dataset1
    GROUP BY Customer, DATEADD(month, DATEDIFF(month, 0, InvoiceDate, 0)) as ConvertedSales 
    OUTER JOIN
    (SELECT Customer, CONVERT(date, '01/' + date , 103) as StartMonth, Target
      FROM dataset2) Targets
     ON Sales.Customer = Targets.Customer AND Sales.StartMonth = Target.SalesMonth
    

    现在您可以使用此数据集创建您的数据透视表

    【讨论】:

    • Koen,我猜你对 tablix 的创建和报告中日期的格式没问题。如果没有,我会将这些添加到答案中
    • 科恩,我的回答对你有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多