sql 求差值(50分)

  • 主题发起人 主题发起人 ttaa
  • 开始时间 开始时间
T

ttaa

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:小生有问题想问,菜人想的都是菜的问题。请多多指教啊。
入库和出库的库存问题。问题如下:
有两个表 inlist.dbf 和outlist.dbf
inlist.dbf的纪录为入数,outlist.dbf为出数。
inlist内容
model inqty indate
A01 100 2001/01/01
A01 50 2001/02/01
A02 200 2001/02/01


outlist 内容
model outqty outdate
A01 70 2001/04/01
A01 50 2001/05/01
A01 20 2001/05/02
A02 100 2001/03/01
A02 50 2001/06/01
现在想得到库存数,既是inlist.dbf 和 outlist.dbf 相同 model的qty
相减。inlist.dbf的A01的inqty(150) 减去outlist.dbf的A01的
outqty(140)。以此类推。
要求结果如下表:
model qty
A01 10
A02 50
用一条select语句怎样实现?
 
select model.model,sum(inlist.inqty) as inqty,sum(outlist.outqty) as outqty,
sum(inlist.inqty)-sum(outlist.outqty) as qty
from (model left outer join inlist on model.model=inlist.model)
left outer join outlist on model.model=outlist.model
group by model.model

model为你的货品基本资料表
 
ZIYU大虾:这条语句我试过了。不对,结果是卡迪尔值。
你的语句得到如下结果:
model inqty outqty qty
A01 450 280 170
A02 400 150 250
请再出高招,我等着用呢。先谢了。
 
select qty=(inqty-outqty) from (select inqty=Sum(inqty),model from inlist group by
model) as a,(select outqty=Sum(outqty),model from outlist group by model) as b
where a.model=b.model
 
select a.model,(a.inqty-b.outqty) from (select Sum(inqty) inqty,model from inlist group by
model) as a,(select Sum(outqty) outqty,model from outlist group by model) as b
where a.model=b.model
 
onlyonekgx,chenliang_fly 两位大虾的语句思路都很清晰。
本想给分了,但还想问多些。因为我手头上没多少分了。因为我是‘问题’者。
只会问,不会答阿。赚不了钱。只有省着用了。
请问大虾,上面的语句是不是都是标准的语句啊?
在delphi中适用。在foxpro中适用。在其他支持sql语句中的工具中都适用?
如果想转到foxpro中使用这语句。编译不通过。
select ....from (select...)... 不能圈套的,是吧?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
551
import
I
后退
顶部