SQL分组查询汇总难题求解!!!!!!!!

whbindg2 2014-05-15 10:53:16
表格是如下:

表1(已有数据)——进货表
name, buycount
apple 1200
banana 200

表2(已有数据) ——订单表
name, needdate, needcount
apple 2000-1-1 200
apple 2000-1-2 300
banana 2000-1-1 300
banana 2000-1-2 500
banana 2000-1-3 400

表3(当前数据)——订单需求余量表
name needdate, havecount, needcount
apple 2000-1-1 50 150
banana null 200 0 (needdate为null表明上次购买有结余)

要求:
每次采购后,用SQL语句根据订单需求表将数据冲入订单需求余量表。
冲入标准:
先将每种水果冲入日期早的订单,订单充满后再冲入下一日期的订单,依此循环
如果购买数大于所有订单总需求,那么表明购买多了,多的数冲入余量表后needdate为null表明为上次购买结余,下次购买水果后可使用该数量继续冲订单。
可以自定义增加表,或修改现有结余表格式,目的是查询订单余量方便。

SQL执行后表3结果如下:
表3(冲数结果)

name needdate, havecount, needcount
apple 2000-1-1 200 0
apple 2000-1-2 300 0
apple null 700 0 --购买1200,冲入第一单200,第二单300,结余700
banana 2000-1-1 300 0 --上次结余200+本次购买200冲入第一单300,第二单100
banana 2000-1-2 100 400
banana 2000-1-3 0 400
...全文
192 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2014-05-19
  • 打赏
  • 举报
回复
请问原表2的这笔记录 name, needdate, needcount apple 2000-1-1 200 与原表3的这笔记录 name needdate, havecount, needcount apple 2000-1-1 50 150 应该是不同2笔订单的数量? 但LZ在结果中好像算一起了喔.
whbindg2 2014-05-19
  • 打赏
  • 举报
回复
独居深处无人问……
whbindg2 2014-05-15
  • 打赏
  • 举报
回复
嗯嗯,是啊,写错了。 SQL执行后表3结果如下: 表3(冲数结果) name needdate, havecount, needcount apple 2000-1-1 200 0 apple 2000-1-2 300 0 apple null 750 0 --购买1200,冲入第一单150(原来已经存在50),第二单300,结余750 banana 2000-1-1 300 0 --上次结余200+本次购买200冲入第一单300,第二单100 banana 2000-1-2 100 400 banana 2000-1-3 0 400
  • 打赏
  • 举报
回复
你苹果的数据结果不对吧,原来不是还有50么?这50不算了?

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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