WITH query3 do
begin
    Params.clear;
    close;
    Params.CreateParam(ftInteger, 'yf',ptinput);
    Params.CreateParam(ftDate, 'fhrq',ptinput);
    SQL.Clear;
    SQL.Add('select 批销单表体.书代号,书名,sum(批销单表体.册数) as 销售总册数, '
    +'库存册数,定价,作者,出版日期,版次,印次,印数 from  批销单表体'
    +' join 批销表头 on 批销单表体.提书单编号=批销表头.提书单编号'
    +' join (select 书代号,sum(册数-残破书册数) as 库存册数 from 图书库存,仓库'
    +' where  图书库存.仓库号=仓库.仓库号'
    +' and 仓库.功能=''可售'' group by 书代号) as aa'
    +' on aa.书代号= 批销单表体.书代号 join 书 on 书.书代号= 批销单表体.书代号 '
    +' where 发货日期 between '
    +' dateadd(month,:yf,:fhrq) and '''+formatdatetime('yy/mm/dd',Form1.RzTimePicker1.Time)
    +''' and 库存册数<='+editkccs.text+' group by  批销单表体.书代号,书名,'
    +' 库存册数,定价,作者,版次,印次,印数,出版日期 having sum(批销单表体.册数)>='
    +editcs.text);    Params[0].asinteger:=-strtoint(edityf.text);
    Params[1].asdate:=Form1.RzTimePicker1.Time;
    open;
//    params.clear;
    label10.visible:=true;
    label10.caption:='上面查询共有'+inttostr(recordcount)+'条记录!';我想问这种写法对不对呀?