2020-10
23

我实现这些

By xrspook @ 10:16:14 归类于: 烂日记

渐渐地我越发有点明白自己想要的到底是什么。之所以让我纠结了半天,不知道该如何计算的某些数据,实际上是因为两种性质的东西混搭在一起了。我不知道别人是否真的搞得清,他们是有意糊弄我们的吗?是因为他们知道我们算不清这个,所以这么搞吗?这个问题很困扰我,是因为那个东西把正常的批次跟没有写明批次但要先进先出的混搭在一起。有明确批次的数量计算是不分仓号的,因为通常那意味着好几个仓进同一批货,开始计费的日期定在第1个仓刚开始进货的那天。所以,如果同批次还有其他仓,最后一个仓进货的时候可能已经是3天后,那个仓的免堆期等于要减去三天。如果某个客户所有东西都这么弄,不会有烦恼,因为无论进货还是出货,肯定会带入批次。

在Power Query的世界里,这就意味着要以批次和日期分组。各种仓号数据可以全部加在一起,无所谓。但同时,这个客户又有另外一种情况。如果他进货不是用船,而是用车,每天几千几千吨进货的话,我们跟他们签订的合同是按每天为一个批次。一个批次到达免堆期以后开始计费。现在我们的系统总的来说,根本没分清这种批次,计费完全是人肉计算的。但实际上,这种没有批次的批次,理论上也应该自动带入,入库的时候以日期为批次。所以有可能发生同一个批次有几个仓出库的时候,要以先进先出进行批次划分。进货的时候,一个批次可能有几个仓,但是出货的时候肯定是指定的。所以在这里要以仓好为分类,然后在对入库批次分割数量。比如某一个仓里第1个日期批次用完了再开始用第2个,第2个没用完,就留到以后继续分割。据说用SQL和Power Pivot能解决这个先进先出的问题。但貌似,我看到的Power Pivot的例子没有看到我想要的最终结果,也就是把那个出库数量自动分割成入库批次。先进先出是非常经典的会计问题,只不过我们的人从来都是我觉得我要指定这个,没有用过这些规则,当然也就没有思考该怎么自己动手去计算。一开始没有批次,用先进先出的规则,入库的时候自动添加批次,出库的时候按照入库的批次风格,最终得出来的数据,跟之前一开始就已经有批次的东西可以用同样的规则继续演算。

对我来说,有两个点我没想明白。首先,要怎么在PQ里以先进先出的规则,对出库数量进行批次分割呢?第二,因为实际上我们得到的信息是一个入库日期和出库日期。而这些日期通常都是不连续的,在不连续的日子里也要计算每天库存,到达一定时间之后,要每天计算堆存费。所以,该怎么在不连续的日子里插入一些日期,然后向下填充信息呢?之前我想到的办法是先建立一个日期索引。然后把有数据的东西合并到索引里,这就意味着有些日期可能是没有数据的。接着,把这些东西透视展开,把数据为空的那一列删掉,余下的东西向下填充,然后再把零数据替换为空,接下来再用一个逆透视恢复。这个方法比较笨。但可以一次性实现N个批次的插入和填充,至于速度如何,估计跟电脑的性能有关。我总觉得高手一定不需要用到这种先透视再逆透视的方法。他们是怎么插入日期,然后向下填充数据的呢?

想清楚了这些,离我想要的最终结果就会又近了一些。

2020-10
21

批次问题

By xrspook @ 10:57:55 归类于: 烂日记

我以为我完成了任务,但实际上,我并没有做到。

之所以没有碰钉子,是因为我统计的那些数据,刚好那几个月,只有进没有出,也正是因为这样,我才侥幸的逃过一劫,如果仍然以我之前的批次确定方式,出的时候会出现负数。因为出的时候也是一个日期,而那个日期是之前没有过的。真搞不懂这个合同为什么要这么折腾,但或许这不是合同太折腾,而是我没有想到位。现在我想到的其中一个方法,是到了某个免堆期以后,把那些以日期命名的批次一次性转为一个统一的命名批次,比如无。这样那些一天一天积累入库的东西,到达某个时候就会统一混为一体。出的时候也是从这一个大块里一点一点的减出来。所以批次这种东西只出现在入库的某些部分,出的时候这些一点一点积累起来的东西的时候一律是无。

如果那个屌丝东西入了以后,没到免堆期结束就出了呢?理论上。这种东西是完全不应该计算堆存费,但是出的时候,没有带入入的时候的那个批次。所以入的东西一直挂在这里,出的那些则是从大单位里减去。所以理论上,这样算的话,堆存费就会少了。因为那些特例的东西无论是入还是出,都不影响堆存费,因为那些都不计算堆存费,但如果从大单位里减去,堆存费就少了。我非常想知道,那些算不清谁是谁的散货码头单位到底是如何解决这个问题的。如果能分清楚的东西还好说,比如说货柜,算得清什么时候来的,什么时候走的,但散货呢?一个大堆里,最里面的是最开始进的,最上面的是最后整上去的,但实际上出货的时候,你只能从上面到下面。散货码头界定的批次概念到底是每天进多少就一个批次还是说从的第1天开始,就算做一个批次呢?免堆期之内有进有出,这其中的数量,应该如何去计算呢?大概现在我很烦恼的东西是先进先出的问题。这种东西我现在都想不明白该如何用图表示。之所以想不到如何用图去表示。是因为我想不清楚出的是哪个批次。因为那些东西不是一个整数,如果出的数量少于某个入的批次,还好说,但如果跨越了几个批次呢?那几个批次里面,其中某些只是部分,这个东西又应该如何处理呢?之前我就已经稍微了解过先进先出这种东西。批次这东西,之前我也认为应该进行拆分,但这个拆分要怎么判断呢?考虑这个问题,以我现在的水平来说,显然超纲了,但是这是非常实际的问题,不可能避免。从整体来说好像是没有解决方案,但是如果细分到某个堆场估计能说得清。那些东西到底是什么时候进的,货物来源是哪里,出的时候要分开,应该使用什么规则呢?

我觉得我没搞清楚总分的关系,当分组到最细层次的时候一切都好说,但上面的合并要求不同,于是就会分叉出很多不同的东西。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress