SQL 神题生产排程--求解【新手勿进】
create database Roni_tempuse Roni_temp
go
/*drop table pland_det
drop table plan_mstr*/
create table plan_mstr
(
PNO_ID int not null, /*生产单号*/
pqty int not null, /*待产量*/
dayqty int not null, /*机器日产量*/
plan_line int not null, /*生产次序*/
constraint pk_plan_mstr primary key (PNO_ID)
)
create table pland_det
(
day_line int not null, /*生产次序*/
PNO_ID int not null, /*生产单号*/
Aqty int not null, /*安排产量*/
constraint pk_pland_det FOREIGN KEY (PNO_ID) REFERENCES plan_mstr(PNO_ID)
)
insert into plan_mstr (PNO_ID,pqty,dayqty,plan_line) values (001,100,40,1)
insert into plan_mstr (PNO_ID,pqty,dayqty,plan_line) values (002,30,20,2)
insert into plan_mstr (PNO_ID,pqty,dayqty,plan_line) values (003,20,10,3)
生产排程表
PNO_ID(生产单号) PQty(待产量) DayQty(机器日产量) plan_line(生产次序)
001 100 40 1
002 30 20 2
003 20 10 3
想生成如下的推断生产计划表2:
Day_line(生产次序第几天) PNO_ID(生产单号) AQty(安排产量)
1 001 40
1 002 0
1 003 0
2 001 40
2 002 0
2 003 0
3 001 20
3 002 10
3 003 0
4 002 20
4 003 0
5 003 10
6 003 10
凡是到某天还没生产完成的单(包括生产了一部分的或者还没开始生产的),
那天的数据都要包括这些单号,生产完成的单则不必显示,如果该单当天按推断不会生产,
则AQty(安排产量)为0,请大家看看第3天的数据,该天001单剩下20个没做,机器对001单的日产量是40个,
那么机器能够生产完001单之后还剩下半天时间,按照生产次序,001单完成之后是002单,002单要生产30个,
机器对002单的日产量是20个,即是说,第3天还有半天时间可以安排生产002单,这半天时间能够生产002单是10个,
002单还剩20个,这20个刚好第4天可以生产完,那么第5天就可以开始生产003单.
求解,谁能用SQL按生产排程表把生产计划表推算出来?