当满足两个条件时,我需要重置运行总数。
请参阅下面的更新以获得澄清。
使用sql server
Current Table:
item_Number|cartons|average_cartons|running_total|
123456 |.1 |.181818 |.1 |
123456 |.1 |.181818 |.4 |
123456 |.1 |.181818 |.5 |
123456 |.2 |.181818 |.7 |
123456 |.1 |.181818 |.8 |
123456 |.1 |.181818 |.9 |
123456 |.2 |.181818 |1.1 |
123456 |.3 |.181818 |1.4 |
123456 |.7 |.181818 |2.0 |
200000 |3.00 |16.25 |3.0 |
200000 |4.00 |16.25 |7.0 |
200000 |8.00 |16.25 |15.0 |
200000 |1.25 |16.25 |16.25 |
Desired Table:
item_number|cartons|average_cartons|running_total|resetting_total
123456 |0.10 |.181818 |0.1 |0.1
123456 |0.10 |.181818 |0.4 |0.4
123456 |0.10 |.181818 |0.5 |0.5
123456 |0.20 |.181818 |0.7 |0.7
123456 |0.10 |.181818 |0.8 |0.8
123456 |0.10 |.181818 |0.9 |0.9
123456 |0.20 |.181818 |1.1 |0.1
123456 |0.30 |.181818 |1.4 |0.4
123456 |0.70 |.181818 |2.0 |0.0
200000 |3.00 |16.25 |3.0 |3.0
200000 |4.00 |16.25 |7.0 |7.0
200000 |8.00 |16.25 |15.0 |15.0
200000 |1.25 |16.25 |16.25 |0
更新1:
数据:
数据按项目编号进行分区,并按一年中的星期排序。因此,
item\ u number=项目编号。
纸箱=每周每件商品的纸箱销售量。
average\u cartons=每周平均售出的纸箱数量。
running_total=按项目编号列出的每周纸箱的运行总数。
重置总箱数=从>平均箱数开始,一个项目的箱数的运行总和。
小组:我不确定是否有必要。其他答案包括一个组变量,用于对组中的所有值求和。我还看到一个缺货的布尔值来实现这一点。参见:[oos answer].1
当满足以下两个条件时,重置\u total列将重置。
条件:
总运行时间大于1。这说明平均值小于值1。
运行总数>=平均箱数。
我的目标:
大概估计一下我什么时候需要订一套纸箱。
假设:
至少订购1箱,以说明周平均值<1。
每个订单将等于平均纸箱四舍五入到下一个整数(上限(平均纸箱))。
2条答案
按热度按时间xoefb8l81#
计算分为两部分。首先取最大值1和平均纸箱作为除数。换句话说,确保它至少是1。然后用模运算法计算余数。组数类似于商的整数部分,而reset是小数部分。
mqkwyuun2#
看起来您需要运行总数的整数和小数部分。一个简单的方法是:
第二部分可以用
%
:然而,我猜大多数人——包括sql server的狂热爱好者——都会认为这是一个错误,或者至少是一段相当难以理解的代码(一
frac()
功能会更清晰。)