Q&A

  • 레코드의 필드중 높은값 순서대로 알기..
var AField : string;

AMix,AF : Double;

c: integer;

begin

with SQLtmix2 do begin

close;

sql.clear;

sql.add('select * from Tmixdb');

sql.add('where t_titl= :p_titl and t_titm = :p_titm');

parambyname('p_titl').asstring := 'GRP';

parambyname('p_titm').asstring := 'GRP';

open;

AMix := 9999;

for c:= 4 to FieldCount - 1 do begin

AF := Fields[c].AsFloat;

if AF = 0 then AF := 9999; //필드값이 0 인것 제외하기위해..

if AF < AMix then begin

AField := UpperCase(Fields[c].FieldName); //필드명

AMix := Fields[c].asFloat; //가장작은값

end;

end;

end;



위처럼 하면 가장 작은 필드와 그 값을 알 수 있습니다.

제가 알고자 하는것은 순서대로 입니다.

여러 필드중 제일작은필드 2번째 작은필드,3번째 작은필드....

이렇게요.. 에궁 응용이 않되네요...

고수님들 한수 부탁드립니다.

감사합니다.

1  COMMENTS
  • Profile
    초보 2001.09.13 17:54
    sql.add('order by 필드명');

    이걸 추가하면 필드값이 정렬이 됩니다.

    sql.add('order by 필드명 desc'); 를 하면 반대로 정렬이 됩니다.







    초보 wrote:

    > var AField : string;

    > AMix,AF : Double;

    > c: integer;

    > begin

    > with SQLtmix2 do begin

    > close;

    > sql.clear;

    > sql.add('select * from Tmixdb');

    > sql.add('where t_titl= :p_titl and t_titm = :p_titm');

    > parambyname('p_titl').asstring := 'GRP';

    > parambyname('p_titm').asstring := 'GRP';

    > open;

    > AMix := 9999;

    > for c:= 4 to FieldCount - 1 do begin

    > AF := Fields[c].AsFloat;

    > if AF = 0 then AF := 9999; //필드값이 0 인것 제외하기위해..

    > if AF < AMix then begin

    > AField := UpperCase(Fields[c].FieldName); //필드명

    > AMix := Fields[c].asFloat; //가장작은값

    > end;

    > end;

    > end;

    >

    > 위처럼 하면 가장 작은 필드와 그 값을 알 수 있습니다.

    > 제가 알고자 하는것은 순서대로 입니다.

    > 여러 필드중 제일작은필드 2번째 작은필드,3번째 작은필드....

    > 이렇게요.. 에궁 응용이 않되네요...

    > 고수님들 한수 부탁드립니다.

    > 감사합니다.