注册 登录
编程论坛 SQL Server论坛

请教高手一个有点难度的问题

xiongkuma56c 发布于 2016-04-01 23:15, 3109 次点击
问题描述如下:
用户提供需要向仓库提的某个料号(如80-20123-01)与数量(20),仓库提料的原则是先入先出,然后通过查询语句要得出这样的结果:  
料号                仓库供料信息                 入库时间
80-20123-01      v12021A(15) V12021B(5)       2016-03-030 10:25:30(最早的这个时间)


库存表stock信息

料号             仓库储位     数量      入库时间
80-20123-01       v12021A      15        2016-03-03 10:25:30
80-20123-01       V12021B      10        2016-03-03 10:45:22
80-20123-01       V12021C      5         2016-03-03 11:45:20
40-2456-02        V12021D      25        2016-03-03 11:45:20

4 回复
#2
mywisdom882016-04-02 15:57
查询出来,是可以,但要想自动出库,俺水平有限,就不知道了。
select 料号,仓库储位,数量,入库时间 from stock where 料号='80-20123-01' order by 入库时间
应该就可以查出
料号             仓库储位     数量      入库时间
80-20123-01       v12021A      15        2016-03-03 10:25:30
80-20123-01       V12021B      10        2016-03-03 10:45:22
80-20123-01       V12021C      5         2016-03-03 11:45:20
#3
hu9jj2016-04-02 19:12
在查出的临时表中,按顺序出库就行。可建立循环,出一笔就减一笔,直到待出库数量为零就结束循环。
#4
xiongkuma56c2016-04-03 10:11
回复 3楼 hu9jj
高手能否帮忙写出来?非常感谢!
#5
mywisdom882016-04-03 21:54
以下是引用hu9jj在2016-4-2 19:12:29的发言:

在查出的临时表中,按顺序出库就行。可建立循环,出一笔就减一笔,直到待出库数量为零就结束循环。
*用VFP的语句写的
local lnChuku,lnYushu
lnChuku=20 &&需要出库总数
lnYushu=lnChuku &&未出库总数
select 料号,仓库储位,数量,入库时间 from stock where 料号='80-20123-01' order by 入库时间 into cursor stock_tmp
select stock_tmp
sum 数量 to nAllNum
if nAllNum<lnChuku
   messagebox("库存不够,不能出库!",16,"库存不够")
else
  go top
  do while lnYushu>0
     if 数量>=lnChuku &&某个批次够出库
       repl 数量 with 数量-lnChuku
       lnYushu=0
     else
       repl 数量 with 0
       lnYushu=lnChuku-数量
       skip
     endif
   enddo
endif



     


1