sql小白咨询大神。定金分摊到同个订单多个出库数据里面

weixin_44779306 2019-03-28 12:01:47
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44779306 2019-03-28
  • 打赏
  • 举报
回复
最后应该是剩下200定金。不是200.。
weixin_44779306 2019-03-28
  • 打赏
  • 举报
回复
weixin_44779306 2019-03-28
  • 打赏
  • 举报
回复
引用 7 楼 吉普赛的歌 的回复:
[quote=引用 5 楼 weixin_44779306 的回复:] [quote=引用 3 楼 吉普赛的歌 的回复:] 用开窗函数是可以做的。 没太多时间了, 写个大概:
select *
,(select sum(定金) from test2 as t2 where t2.客户=t1.客户)
-
sum(t1.货款) over(partition by t1.客户 order by t1.订单号,t1.出库单号) 
from test1  as t1
额。。你这个好像只能算出最终分摊的结果,我要每行可以分到的定金,有剩余或者等于0[/quote] 用一个 cte 暂存一下结果, 后面再关联一下就是了[/quote]不对啊。。你现在只是用了总货款减去总定金。就算用cte存了关联回去好像也得不到最后一笔分到的金额是多少啊。。
吉普赛的歌 2019-03-28
  • 打赏
  • 举报
回复
引用 5 楼 weixin_44779306 的回复:
[quote=引用 3 楼 吉普赛的歌 的回复:] 用开窗函数是可以做的。 没太多时间了, 写个大概:
select *
,(select sum(定金) from test2 as t2 where t2.客户=t1.客户)
-
sum(t1.货款) over(partition by t1.客户 order by t1.订单号,t1.出库单号) 
from test1  as t1
额。。你这个好像只能算出最终分摊的结果,我要每行可以分到的定金,有剩余或者等于0[/quote] 用一个 cte 暂存一下结果, 后面再关联一下就是了
weixin_44779306 2019-03-28
  • 打赏
  • 举报
回复
引用 2 楼 二月十六 的回复:
剩余定金不是每次分摊之后剩余的?而是总得?
能写个语句出来吗?或者思路。小白学习中。。。。。。。。。
weixin_44779306 2019-03-28
  • 打赏
  • 举报
回复
引用 3 楼 吉普赛的歌 的回复:
用开窗函数是可以做的。 没太多时间了, 写个大概:
select *
,(select sum(定金) from test2 as t2 where t2.客户=t1.客户)
-
sum(t1.货款) over(partition by t1.客户 order by t1.订单号,t1.出库单号) 
from test1  as t1
额。。你这个好像只能算出最终分摊的结果,我要每行可以分到的定金,有剩余或者等于0
weixin_44779306 2019-03-28
  • 打赏
  • 举报
回复
引用 2 楼 二月十六 的回复:
剩余定金不是每次分摊之后剩余的?而是总得?
可以是剩余的。
吉普赛的歌 2019-03-28
  • 打赏
  • 举报
回复
用开窗函数是可以做的。 没太多时间了, 写个大概:
select *
,(select sum(定金) from test2 as t2 where t2.客户=t1.客户)
-
sum(t1.货款) over(partition by t1.客户 order by t1.订单号,t1.出库单号) 
from test1  as t1
二月十六 2019-03-28
  • 打赏
  • 举报
回复
剩余定金不是每次分摊之后剩余的?而是总得?

22,209

社区成员

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

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