procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
  with adoquery1 do
    begin
      Close;
      SQL.Clear;
       SQL.Text := 'select riqi,suxue from cheji ' +
      'where riqi = ''' + FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime) +''''
      and ????????;
      Open;
    end;
end;我要把DateTimePicker1选中的时间在dbgrid中显示出来,并且把数学这个字段下的所有数据求和,
该如何实现,请帮助。

解决方案 »

  1.   

    with adoquery1 do
        begin
          SQL.Text := 'select '+#39+FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime)     +#39+' as choseriqi,sum(suxue) as sumsuxue,riqi,suxue from cheji ' + 
    ' where riqi = ''' + FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime) +''''
          and ????????
           group by riqi,suxue';
          Open;
        end;
      

  2.   

    SQL.Text := 'select riqi,suxue from cheji ' +
          'where riqi = ''' + FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime) +''''
          and ????????;
    =======不太明白你的意思,可能理解有误=========>
    SQL.add('select riqi,sum(suxue) as 新栏位名 from cheji');
    SQL.add('where riqi = FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime)');是这个意思吗,呵呵
      

  3.   

    阿,你可以使用adoquery1动态创建字段,就是使用计算出来的字段
      

  4.   

    and ?????? 这里就是我想要加的求和的语句。