【发布时间】:2017-02-08 22:17:30
【问题描述】:
我正在寻找一个查询,其中根据 account_num 和 item_order 将一定金额分配到下面的每张发票。此外,如果 partial_payment_allowed 设置为“N”,则仅当分配的金额大于 invoice_amt 时才应分配上述金额,否则应跳过该行并继续到帐户的下一张发票。
Item_order inv_amount Partial_pmt account_num cr_amt
1 1256 Y 12 1000
2 1134 Y 12 1000
1 800 Y 13 1200
2 200 N 13 1200
3 156 N 13 1200
在上面的数据中,每个账户都有一个cr_amt,可以根据item_order进行分配。所以分配后的结果是
account_num Item_order inv_amount Partial_pmt Dist_amt Bal_amt
12 1 1256 Y 1000 256
12 2 1134 Y 256 878
13 1 800 Y 800 400
13 2 200 N 200 200
13 3 156 N 100 100
我们正在努力避免循环,非常感谢任何 cmet。谢谢。
【问题讨论】:
-
仅当 dist_amt > inv_amount 时才付款。 1000
-
抱歉,mike,修复了部分 pmt 标志。请立即检查。
-
@mathguy 他在评论中问了一个后续问题。在这个版本中,他需要对每个不同的
account_num进行单独计算。我不能很容易地理解他从他的评论帖子中问了什么,所以我问了他一个单独的问题。我希望那不是犯规。 -
哦-好的。但这应该在新帖子(此处)中明确说明。
-
在旧问题中,我们没有多个帐户具有一定的分配金额。我尝试通过使用分区来解决 sql 模型子句,但是当引入多个帐户时查询会分崩离析。我只是在寻找任何其他方法来解决这个问题。很抱歉给您带来不便,如果您仍然认为这是重复,我将删除此帖子。谢谢