我正在尝试在价格字段(包含价格)上显示SQL SUM query
的结果,按日期({按月对每月的结果进行分组{1}}字段)并且还使用timestamp
子句,该子句仅显示包含在另一个字段中的某个单词(在本例中为 Folio )的结果到WHERE
因此我的查询如下所示:
TMemo
当我在 phpMyAdmin 中运行它来测试它时,它会返回以下内容:
结果对应于11月,12月,1月和2月 - 因为我在数据库中只有这几个月的条目,所以查询有效。
在Delphi中,使用以下代码对其进行测试:
select date_format(data, '%M-%Y'), sum(pret) as test from arhivalux where statistica='Folio' group by statistica, year(data), month(data)
它有效,但只显示第一个值, 11679 并非全部4,并且值前面没有Y / M. 第一次尝试这个,所以我必须遗漏一些东西
我做错了什么?
答案 0 :(得分:3)
您没有提取结果的第一个值,只提取第二个值。并且您没有遍历所有可用结果,只查看第一个结果。
请改为尝试:
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;