SSRS tablix显示销售对比预算

问题描述:

我很努力地理解一种方法来获取SSRS中正确的Tablix中的以下内容。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中执行此操作。

第一笔销售:客户和月,注意我用的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 

现在你可以使用这个数据集

+0

公园创建支点,我想你是与创建表矩阵,并在报告中的日期格式确定。如果没有,我会将这些添加到回答 – Mike

+0

Koen,我的回答对你有帮助吗? – Mike