SQL分组查询汇总难题求解!!!!!!!!
表格是如下:
表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