stanley8615 2016-05-20 06:59 采纳率: 0%
浏览 1105
已结题

求SQL高手帮忙看看一个查询问题

现在有两个实体表
表1
销售表

货号 时间 数量
A1 2016/5/10 2
A1 2016/5/9 3
A1 2016/5/8 3

表2
收货表

货号 时间 数量
A1 2016/5/7 1
A1 2016/5/6 4
A1 2016/5/5 1

现在需要查询成如下结果
查询结果表

货号 时间 销售数量 收货数量
A1 2016/5/10 2 1
A1 2016/5/9 3 3
A1 2016/5/8 3 2

查询结果的前3列就是【销售表】,第四列的【收货数据】计算规则如下
1.根据每天的销售时间往前推3天内的收货都算此日期下的收货数量
2.当收货数量大于销售数据时,收货数量等于销售数量

第一行的销售时间是2016-5-10,那么收货日期范围是2016-5-7到2016-5-9的3天,查收货表的此范围内只有2016-5-7日的1件,所以第一行的结果就是1,此时2016-5-7的收货表中就剩余为0了;
第二行的销售时间是2016-5-9,那么收货日期范围是2016-5-6到2016-5-8的3天,查收货表的此范围内有2016-5-7(剩余0件),2016-5-6日合计4件,按照规则第2天,结果为3,2015-5-6日剩余1件;
第三行依次类推合计是2016-5-6剩余的1件加上2016-5-5号的1件合计2件;

请问各位高手,如何用SQL完成上述要求,存储过程或者函数都行,实际使用的时候数据量会比较大,所有也请考虑执行效率问题,谢谢

  • 写回答

2条回答 默认 最新

  • 中国风 博客专家认证 2016-05-20 08:33
    关注

    8/9销售数量6,进货共6,用先进先出,应该先扣8/9号扣完,10号应该 显示为0才对

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配