繁体   English   中英

使用SSIS的事实表中的每周销售总额

[英]Weekly Sales Total in Fact Table using SSIS

我有3个销售数据表,我已将其转换为4个维度表和1个事实表。

我已经把所有东西都填满了,我想在Fact表中进行“每日销售”和“每周销售”。

我原来的3个表如下如下:

  • Order (订单#(PK),产品ID(FK),订单日期,总订单,客户#(FK))
    域名是数字,数字,日期,货币,数字

  • Product (产品ID(PK),产品名称,单位成本,制造商名称)
    域名是数字,nvarchar,money,nvarchar。

  • Customer (客户#(PK),客户名称,地址,电话号码#)
    域名是Number,nvarchar,nvarchar,nvarchar

数据仓库的Star Schema链接在这里:

在此输入图像描述

所以我每张桌子只有10条记录(很小!),我现在只是测试概念。 Fact表中的“daily-order”可以从Order表中的“total-order”轻松翻译。 我的困难在于获得每周总数。 我使用派生列和表达式“DATEPART(”wk“,[order-date])”在时间维度中创建我的周列。

所以我想我的问题是,如何从这一点获得每周销售额? 我的第一个猜测是在用于加载Fact表的Lookup序列结束后使用另一个派生列。 我的第二个猜测是.....在stackoverflow上寻求帮助。 任何帮助将不胜感激,我将提供所需的任何信息! 提前致谢!

为了记录我尝试创建派生列,如前所述,但无法弄清楚将被接受的语法....

编辑我想按产品级别列出每周销售列,并且因为我使用DATEPART来获取周列,我不需要过去7天,而只是每周的总计。 我的销售数据仅连续2周延伸,因此我的事实表应该总共列出1次7次,总共3次。 我可以从原始的Order表或我在DW环境中的表中派生出来。 优选后者。 需要注意的是,我主要限于SSIS及其工具(有“执行SQL语法”工具,所以我仍然可以使用查询)

在实际Fact-sales的数据流中,当您加载每日数据时,填写weekly-order金额将具有挑战性 您需要使用多播转换,向其添加聚合以汇总产品,客户,订单和周的价值。 这很简单。 问题是如何将数据与数据流中的实际详细级别信息联系起来。 它可以完成,合并加入,但不要。

正如ElectricLlama在评论中指出的那样,你要做的就是混合你的粒度级别。 如果每周金额存储在表格中,那么您可以添加所有金额,按您想要的任何尺寸切片。 将每周级别数据放在同一级别后,您的用户将只能汇总每日列。 可能,每周的价值不会是累加的。

我说可能是因为你可以通过累积每周值来伪造它,但只能在任意记录上存储它们:一周的第一天,第三天,最后一天,等等。 这解决了加法问题,但现在用户必须记住一周中哪一天保存了本周的汇总值。 此外,除非他们在您选择解决附加值问题的那一周的确切日期下订单,否则您将为该摘要行生成虚假订单记录。

正确的解决方案是从事实表中删除weekly-order并增加您的数据维度,以便人们确定每周的金额。 如果您未将数据从仓库中带出并进入分析引擎,则可以预先计算每周聚合并将其实现为报告表/视图。

来源数据

我们来看一个简单的场景。 一个客户在同一天订购了3个订单,其中两个是同一产品(可能是一个是加急运输,其他标准)

SalesDate |Customer|Product|Order|Amount
2013-01-01|1       |20     |77   |30
2013-01-01|1       |30     |77   |10
2013-01-02|1       |20     |88   |1
2013-01-02|1       |20     |99   |19

事实表

您的用户将在桌面上指出他们选择的工具,并且您将接到一个电话,因为数字不正确。 或者你稍后会接到一个电话,因为当他们只需要重新订购50时,他们需要补充150个单位的产品20。我不想对这些电话进行任何一次调用。

SalesDate |Customer|Product|Order|daily-order|weekly-order
2013-01-01|1       |20     |77   |30         |50
2013-01-01|1       |30     |77   |10         |10
2013-01-02|1       |20     |88   |1          |50
2013-01-02|1       |20     |99   |19         |50

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM