表1:
rowid hd fprice fqty
1 0.2 50 178.6
2 0.2 52 136
3 0.2 89 102
表2:
id 分录 厚度 数量 金额
1 1 0.2 65
1 2 0.2 68
1 3 0.2 108
2 1 0.2 34
2 2 0.2 21
2 3 0.3 90 需求是这样的:
表1中有3行,厚度为0.2的有多种价格
那表2中的0.2应该取的价格是(从上到下):
第1行:0.2 65,因为65小于178.6所有这一行的价格应该取50,同时抵减了表1的178.6还剩下178.6-65=113.6
第2行:0.2 68,因为抵减了上一行的65还剩下113.6。所以此行的单击也应该是50,同时抵减了表1中的113.6还剩下113.6-68=45.6
第3行:0.2 108,因为抵减了上一行的68还剩下45.6。小于108.所以此行的有单价为50(数量为45.6)。表1中的第一行已经扣减完毕。所有表1指向下一行0.2 136(表1)
表2中的第3行已经满足了45.6还需62.4即可满足,从表1中的第2行0.2 136 拿出62.4即可满足表1中第3行的数量,同时取下这行的单价为52(62.4)。所有此行的金额是50*45.6+62.4*52
同理................................请问这样的SQL应该怎么写?
在线等啊。可能是前面的贴没有描述清楚
rowid hd fprice fqty
1 0.2 50 178.6
2 0.2 52 136
3 0.2 89 102
表2:
id 分录 厚度 数量 金额
1 1 0.2 65
1 2 0.2 68
1 3 0.2 108
2 1 0.2 34
2 2 0.2 21
2 3 0.3 90 需求是这样的:
表1中有3行,厚度为0.2的有多种价格
那表2中的0.2应该取的价格是(从上到下):
第1行:0.2 65,因为65小于178.6所有这一行的价格应该取50,同时抵减了表1的178.6还剩下178.6-65=113.6
第2行:0.2 68,因为抵减了上一行的65还剩下113.6。所以此行的单击也应该是50,同时抵减了表1中的113.6还剩下113.6-68=45.6
第3行:0.2 108,因为抵减了上一行的68还剩下45.6。小于108.所以此行的有单价为50(数量为45.6)。表1中的第一行已经扣减完毕。所有表1指向下一行0.2 136(表1)
表2中的第3行已经满足了45.6还需62.4即可满足,从表1中的第2行0.2 136 拿出62.4即可满足表1中第3行的数量,同时取下这行的单价为52(62.4)。所有此行的金额是50*45.6+62.4*52
同理................................请问这样的SQL应该怎么写?
在线等啊。可能是前面的贴没有描述清楚
a b c
0.2 150 90
0.2 40 91
表2:
a b c
0.2 140 ?
0.2 30 ?
关联依据是a相等
用表2中的每一行和表1中的每一行比较(比较条件:数量)140小于150,那么表2中的140这行就取90,此行还剩下10
表2下移
30大于10(上一行剩下的),那么表2中就会有2个单价。一个是上一行还剩下的10那行单价(90),另外一个是表1中的下一行91