[英]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.