这样的事情应该可以做到。
AdoQuery1.Active:= false;
AdoQuery1.SQL.Text:= ' select gender, count(*) as cnt from atable '
+' where something = 10 '
+' group by gender '
+' order by (gender = "M") ';
AdoQuery1.Active:= true;
DataSrc:= TDataSource.Create(Self);
DataSrc.DataSet:= AdoQuery1;
DataSrc.Enabled:= true;
DataSrc.FindFirst;
if lowercase((DataSrc.FieldByName('gender')) = 'm' then begin
LabelMale.Caption:= DataSrc.FieldByName('cnt').AsString;
Success:= DataSrc.FindNext;
end
else LabelMale.Caption:= 'none';
if (Success) and (lowercase((DataSrc.FieldByName('gender')) = 'f') then begin
LabelFemale.Caption:= DataSrc.FieldByName('cnt').AsString;
end
else LabelFemale.Caption:= 'none';
是的,有一种方法可以在数据源中使用adoquery。但是,我不能提供帮助,因为您没有提供有关数据库架构的信息,没有示例数据,没有您希望获得的输出示例,也没有尝试自己编写SQL这样做。 (这是一个使用'COUNT'和'GROUP BY'的简单查询,但没有关于数据库模式的信息,因此很难提供示例。)请[编辑]提供更具体的信息,以便我们尝试和帮助您。我们无法从我们坐的位置看到您的屏幕。 –