重新整理sql匹配需求

myfanjun 2013-02-22 05:09:47
表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应该怎么写?
在线等啊。可能是前面的贴没有描述清楚
...全文
284 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangpop 2013-05-29
  • 打赏
  • 举报
回复
我也想知道这个怎么解决,lz有解决方法了吗?
myfanjun 2013-02-24
  • 打赏
  • 举报
回复
表1: 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
myfanjun 2013-02-23
  • 打赏
  • 举报
回复
有没有知道啊?
carychuang 2013-02-23
  • 打赏
  • 举报
回复
这么长的描述,看起来头晕,其实你可以自己先整理一下,然后差关健步骤 大家再帮你解决就行
myfanjun 2013-02-22
  • 打赏
  • 举报
回复
可能是前2次没有描述清楚
myfanjun 2013-02-22
  • 打赏
  • 举报
回复
没办法哦,还没有解决啊
-Tracy-McGrady- 2013-02-22
  • 打赏
  • 举报
回复
哥,您这是发第几遍了?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧