请问以下查询中,为何没有查到记录,query1记录数显示为1?
query1.Close;
asql:='select pmgk as 货品名称,sum(shul )as 销售数量, sj as 销售单价'
     +',sum(shul)*sj as 销售总金额 from skxsitem  where xsdate=:d1  group by pmgk ,sj';//query1.ParamByName('tdate').asdatetime:=date();
query1.SQL.Clear;
query1.SQL.Text:=asql;
query1.params[0].asdatetime:=date;
query1.Open;
showmessage(inttostr(query1.RecordCount));

解决方案 »

  1.   

    有sum,count等函数时没有查到记录一般也会返回1的。
      

  2.   

    说的对,既然你已经Sum了,那么用Count统计还有什么意思呢
      

  3.   

    怎么会没有记录呢?只是返回的这个结果集中没有得到统计结果为空而已呀!
    你试试这样:
    if Query1.FieldByName('销售数量'{或'销售总金额 '}).IsNull then 
      ShowMessage('销售数量统计结果是空!')