求助:如何获得用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.配件编号