datasource2.DataSet:=Query1;
DBGrid1.DataSource:=datasource2;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from FYtable where 欠收金额 in (select MIN(欠收金额) from FYtable
group by 客户编号)');
Open;
end;
====================================================
为什么DBGRID1显示的不是符合条件的数据:应该显示的是每个客户编号对应的最小欠收金额,但是现在显示的确实所有的数据;换成MAX(欠收金额)可以显示正确的数据,即每个客户编号对应的最大欠收金额,不知道为什么?
DBGrid1.DataSource:=datasource2;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from FYtable where 欠收金额 in (select MIN(欠收金额) from FYtable
group by 客户编号)');
Open;
end;
====================================================
为什么DBGRID1显示的不是符合条件的数据:应该显示的是每个客户编号对应的最小欠收金额,但是现在显示的确实所有的数据;换成MAX(欠收金额)可以显示正确的数据,即每个客户编号对应的最大欠收金额,不知道为什么?
group by 客户编号把这一句单独执行,看看是什么结果。看看你的表结构。
FROM test5
WHERE ((khbh + STR(qje)) IN
(SELECT khbh + STR(MIN(qje)) AS Expr1
FROM test5
GROUP BY khbh))qje=欠收金额,khbh=客户编号