Q&A

  • select결과셋을 이용하고 싶은데요..


A테이블의 1번필드의 평균과 표준편차를 SUM과 STDEV함수로 구하고 그 결과를 select해서 에디트박스1과 2에 각각 집어넣고 그 차를 테이블B에 저장하고 싶은데요.

궁금한 것은 코딩을

with query1 do

begin

close;

sql.clear;

sql.add('select avg(escore) from english');

open;

end;

이렇게 하는게 맞는건가요?

아님 다른 변수를 선언해줘야 하는지.

또 그렇게 select해온 결과를 어떻게 불러오고 에디트박스에 집어넣는지 잘 모르겠습니다.



흠..

이것만 해결하면 대충 마무리할 수있을 것 같은데...

아시는 분의 조언 부탁드립니다.





3  COMMENTS
  • Profile
    이주흥 1999.10.15 02:30
    장소옥 wrote:

    >

    > A테이블의 1번필드의 평균과 표준편차를 SUM과 STDEV함수로 구하고 그 결과를 select해서 에디트박스1과 2에 각각 집어넣고 그 차를 테이블B에 저장하고 싶은데요.

    > 궁금한 것은 코딩을

    > with query1 do

    > begin

    > close;

    > sql.clear;

    > sql.add('select avg(escore) from english');

    > open;

    > end;

    > 이렇게 하는게 맞는건가요?

    > 아님 다른 변수를 선언해줘야 하는지.

    > 또 그렇게 select해온 결과를 어떻게 불러오고 에디트박스에 집어넣는지 잘 모르겠습니다.

    >

    > 흠..

    > 이것만 해결하면 대충 마무리할 수있을 것 같은데...

    > 아시는 분의 조언 부탁드립니다.

    >

    >



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    with query1 do begin

    close;

    sql.clear;

    sql.add('select AVG(a) as avg from A');

    Open;

    edit1.Text := FloatToStr(FieldByName('avg').AsFloat);

    end;



    with query1 do begin

    close;

    sql.clear;

    sql.add('select STDEV(a) as dev from A');

    Open;

    edit2.Text := FloatToStr(FieldByName('dev').AsFloat);

    end;

    edit3.Text := FloatToStr(StrToFloat(Edit1.text)- StrToFloat(Edit2.Text));

    end;



    end.

  • Profile
    장소옥 1999.10.15 03:07
    이주흥 wrote:

    > 장소옥 wrote:

    > >

    > > A테이블의 1번필드의 평균과 표준편차를 SUM과 STDEV함수로 구하고 그 결과를 select해서 에디트박스1과 2에 각각 집어넣고 그 차를 테이블B에 저장하고 싶은데요.

    > > 궁금한 것은 코딩을

    > > with query1 do

    > > begin

    > > close;

    > > sql.clear;

    > > sql.add('select avg(escore) from english');

    > > open;

    > > end;

    > > 이렇게 하는게 맞는건가요?

    > > 아님 다른 변수를 선언해줘야 하는지.

    > > 또 그렇게 select해온 결과를 어떻게 불러오고 에디트박스에 집어넣는지 잘 모르겠습니다.

    > >

    > > 흠..

    > > 이것만 해결하면 대충 마무리할 수있을 것 같은데...

    > > 아시는 분의 조언 부탁드립니다.

    > >

    > >

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > with query1 do begin

    > close;

    > sql.clear;

    > sql.add('select AVG(a) as avg from A');

    > Open;

    > edit1.Text := FloatToStr(FieldByName('avg').AsFloat);

    > end;

    >

    > with query1 do begin

    > close;

    > sql.clear;

    > sql.add('select STDEV(a) as dev from A');

    > Open;

    > edit2.Text := FloatToStr(FieldByName('dev').AsFloat);

    > end;

    > edit3.Text := FloatToStr(StrToFloat(Edit1.text)- StrToFloat(Edit2.Text));

    > end;

    >

    > end.



    답변 고맙습니다.

    그런데 avg에서 신텍스에러를 내네요.

    avg대신 다른 이름을 쓰니까 되네요.

    avg가 sql에서 쓰이는 함수라서 그런가보죠?

    고맙습니다.

  • Profile
    이주흥 1999.10.15 20:41
    그렇네요..

    제가 테스트를 못해보고 올려서 그렇네요...

    앞으론 테스트를 꼭 하고 올려야쥐...

    아무튼 된다니 기쁘군요...

    즐거운 코딩하시길....