繁体   English   中英

尝试在TMemo中显示总和查询的结果

[英]Trying to display results of a sum query in TMemo

我试图在价格字段(包含价格)上显示SQL SUM query的结果,将日期日期timestamp字段)中按月分组,并且还使用WHERE子句,该子句仅显示包含特定单词的结果(在这种情况下开本 )包含在另一字段,到TMemo

因此,我的查询如下所示:

select date_format(data, '%M-%Y'), sum(pret) as test from arhivalux where statistica='Folio' group by statistica, year(data), month(data)

当我在phpMyAdmin中运行它进行测试时,它返回以下内容:

在此处输入图片说明

结果对应于11月,12月,1月和2月-因为我仅在那几个月中在数据库中有条目,所以查询有效。

在Delphi中,使用以下代码对此进行测试:

procedure TForm2.Button1Click(Sender: TObject);
begin
 Query.Close;
 Query.SQL.Text := ('select date_format(data, ''%M-%Y''), sum(pret) as test from arhivalux where statistica=''Folio'' group by statistica, year(data), month(data)');
 Query.Open;
 Memo1.Lines.Text := Query.FieldByName('test').AsString;

end;

它可以工作,但仅显示第一个值, 11679不能全部显示4,并且在该值之前不显示Y / M。 第一次尝试这个,所以我一定错过了一些东西

我究竟做错了什么?

您不会提取结果的第一个值,而仅提取第二个值。 而且,您不会浏览所有可用结果,而只会查看第一个结果。

尝试以下方法:

procedure TForm2.Button1Click(Sender: TObject);
begin
  Query.Close;
  Memo1.Clear;

  Query.SQL.BeginUpdate;
  try
    Query.SQL.Add('select date_format(data, ''%M-%Y'') as df, sum(pret) as test');
    Query.SQL.Add('from arhivalux');
    Query.SQL.Add('where statistica=''Folio''');
    Query.SQL.Add('group by statistica, year(data), month(data)');
  finally
    Query.SQL.EndUpdate;
  end;

  Query.Open;
  try
    while not Query.Eof do
    begin
      Memo1.Lines.Add(Query.FieldByName('df').AsString + ' = ' + Query.FieldByName('test').AsString);
      Query.Next;
    end;
  finally
    Query.Close;
  end;
end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM