首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么获得用locate查询出结果的记录数

2012-02-26 
求助:如何获得用locate查询出结果的记录数问题是这样的,有三个表,一个是进货表,一个是销售表,一个是库存表

求助:如何获得用locate查询出结果的记录数
问题是这样的,有三个表,一个是进货表,一个是销售表,一个是库存表,库存表里面要求出进仓数,出仓数,和结仓数,进仓数就是进货的配件数,问题出在出仓数,在输入库存表后,查找出销售表中配件编号和库存表中配件编号相同的销售表的记录,这个是用adotable的locate语句求出,但是同一配件可以不同的时间销售出,这样出仓数就不能仅仅等于对应配件的销售数量,应该等于同一个配件不同时间销售处的数量的和。下面是代码
if   adotable3.Locate( '配件编号 ',ADOTable2.FieldByName( '配件编号 ').Value,[lopartialkey])then   begin
sum:=0   ;
if   adotable3.RecordCount <> 1   then   begin
for       i:=0     to       ADOTable3.RecordCount-1       do
          sum:=sum+ADOTable3.FieldByName( '数量 ').Value;
end     else       begin
          sum:=ADOTable3.FieldByName( '数量 ').Value;
end;
ADOTable2.FieldByName( '出仓数 ').Value:=sum;
上面ADOTABLE3   是销售表,ADOTABLE2是库存表;
如果这里面的adotable3.RecordCount数等于用LOCATE查询出的记录数的话,就能运行成功了,可是adotable3.RecordCount是整个表没有查询前记录的数目,这个用LOCATE查询出的记录数怎么求呢?
请各位高手帮帮忙!最好能给出代码,谢谢了。在线等。

[解决办法]
不建议用LOCATE
[解决办法]
应该用一条语句就可以搞定。试试下面的语句:

select sum(销售表.数量) as outnum,m.配件编号 from 销售表 m,库存表 d
where m.配件编号=d.配件编号 group by m.配件编号

热点排行