一个简单的sql问题,青帮忙 。。(40分)

  • 主题发起人 主题发起人 cyli888
  • 开始时间 开始时间
C

cyli888

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有把两个表合并在一起,sdkc和ckkc,两个表字段相同,
我想把两个表中‘货品名称’和‘批号’相同的‘可销售库存相加,
语句如下
sql.add('select 货品编码,货品名称,sum(可销售库存)as 可销售库存,单位,批号 from sdkc,ckkc group by 货品名称,批号)这样市不行的,请指教正确方法...
 
'select a.货品编码,a.货品名称,sum(b.可销售库存)as 可销售库存,
b.单位,b.批号
from sdkc a,ckkc b
where a.货品名称=b.货品名称 and a.批号=b.批号
group by a.货品编码,a.货品名称,b.单位,b.批号
 
在你的语句中:
sql.add('select 货品编码,货品名称,sum(可销售库存)as 可销售库存,单位,批号
from sdkc,ckkc
group by 货品名称,批号')
由于从两个表中查询,但你却没有指定两表的联接条件,这时按缺省的方式将两表
中的记录进行组合,如果两表分别有100和200个记录这时就会在结果中返回100X200=20000
个记录当然不是你想要的。所以这里要加上条件where子句限定两表的联接条件。
 
'select sdkc.货品名称,sdkc.批号,sum(sdkc.可销售库存 + ckkc.可销售库存)as 可销售库存,
from sdkc,ckkc
where sdkc.货品名称*=ckkc.货品名称 and
sdkc..批号*=ckkc.批号
group by 货品名称,批号'
 
or:

select sdkc.货品名称,sdkc.批号,sdkc.可销售库存+(select ckkc.可销售库存 from ckkc
where ckkc.货品名称 =sdkc.货品名称 and ckkc.批号=sdkc.批号) as 可销售库存
from sdkc
 
'select 货品编码,货品名称,(sdkc.可销售库存+ckkc.可销售库存)as 可销售库存,单位,批号 from sdkc,ckkc
where ckkc.货品名称 =sdkc.货品名称 and ckkc.批号=sdkc.批号'
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部