写在前面
解决问题:库存报表(从库存日报表到库存月/年报表)
攻克难点:可加事实与不可加事实的混合处理(下篇)
辅助工具:SAP HANA(数据分析计算);POWER BI(前端可视化展示)
整体思路
无忌的小院在竹林深处,此时正值初夏,修篁森森,绿荫遍地,除鸟鸣外再无其他声响,可谓是“蝉噪林逾静,鸟鸣山更幽”。
一阵凉风拂过,张无忌睡眼惺忪,醒来已是午时,忽然想到心中所挂之事尚未攻破,不禁眉头紧皱,苦思冥想之后,霎时间悟出其奥妙之处,扯过草纸,写下解题思路,这一招使得犹如行云流水,潇洒无比。
无忌心中明白,入库数量和出库数量可以进行计算,属于可加事实,而库存数量不可直接进行计算,属于不可加事实。因此应当将二者分开计算,最后再进行合并。
(更准确来说库存应该属于半可加事实,虽然不能按时间累积,但是可以按药物品种累积)
计算过程
步骤a
步骤a即为可加事实的计算,将上篇中步骤a、b的结果每日入库记录、每日出库记录处理成每月/年出入库记录。
(由于月报表与年报表计算思路完全相同,下文将只以月报表为例进行阐述。)
无忌大喜,数据分析方面,虽然是初来乍到,可此步处理,实在是毫无难度,可谓是不费吹灰之力。
首先先将日入库记录和日出库记录按照月份聚合(方法相同,此处只展示将入库记录按月份聚合),得到以下结果
将月入库记录和月出库记录根据月份和药物名称进行关联:
张无忌细看计算结果,反复斟酌,发现了问题所在:
只有既有入库又有出库的月份和药物才有数据!
无忌不禁悚然一惊,此处绝非这么简单……
每日出入库数量不确定,有些日子颗粒无收,每日出/入库记录将不产生记录,不产生出/入库数量变化的情况可能会被遗漏,因此需要较为稳定的日期+药物维度表来对入库记录和出库记录进行两次左关联,保证结果的完整性。
至此,解决了步骤a的所有问题。
步骤b
步骤b即为不可加事实的计算,将每日库存记录的每月最后一天库存摘出来,作为每月最后一天的库存。
库存分析(上篇)中已经得到了库存日报表,本篇步骤b中,获得库存日报表中每月的最后一天(下图右半部分),然后将其与库存日报表关联,即可得到每月最后一天的库存数量。
步骤c
步骤a和步骤b分别得到每月出入库数量和每月库存数量,二者关联,就可得到月库存报表。
结果验证
七花七虫草:
1月 :入库-75,出库-10,库存=0+75-10=65
2月:入库-0,出库-20,库存=65+0-20=45
3月:入库-0,出库-20,库存=45+0-20=25
4月:入库-35,出库-5,库存=25+35-5=5
完全正确!
可视化展示
无忌大喜,沉浸在成功即将到来的喜悦中,不觉胡青牛就坐在对面椅中,望着无忌手中的书卷,说道:你这娃娃向来勤学懂事,悟性甚高,你日以继夜,废寝忘食的钻研我都看在眼里,要是没有头绪也就罢了。我堂堂蝶谷毒仙,哪有钻着脑袋计较销量的道理!“门可罗雀”并非我求,旁人叫我“见死不救”,我才喜欢!
张无忌赶忙解释:胡先生,无忌愚钝,这几日我没头没脑的乱读一通,本以为数天之内便可明白,无奈无忌才疏学浅,折腾许久才见眉目,屈指一算,钻研库存问题已是第六日。幸好无忌不肯放弃,使了一身蛮劲将其攻克,先生您过目……
胡青牛接过无忌手中的稿纸,点了点头,没有言语,但是无忌看出先生已变了一番心情……
无忌心中石头落地,心想:几日前胡先生还委托我经营好蝶谷生意,怎么现在却……,怕是师傅碍于面子,还好无忌这次没让先生失望,以后,除了练武之外,我定将数据分析作为一门功课,好好钻研……