--表一: SELECT 时间, 应收金额 FROM b1 ORDER BY 时间 asc --表二: SELECT 时间 收款金额 from b2 ORDER BY 时间asc 这两段sql中,表一SQL是应收款,表二sql是收款金额,这两段sql在业务逻辑里没有明确的关系,关联只有用金额关联解释如下: 1、比如在应收款中第一行100,第二行10,第三行30,在收款金额中第一行50,第二行60,那么匹配就应该是应收金额第一行和第二行匹配收款的第一行,应收的30去匹配收款的第三行 2、在实际数据中应收款和收款金额总和不一定相等,比如,收款金额总和多了100,那么应收款的指标为空就行,反之应收金额多,收款金额为空。 3、再多写个字段,这个字段用来表示当前行的正负,应收款为正,收款金额为负,为正时在下一行计算时加到应收款中,反之加到收款金额中,。 4、注意在匹配之前,要时间升序。 5、最终输出结果字段应是:应收金额、收款金额、金额差 用Oracle的function编写 |