Q&A

  • 필드합계 구하는 방법 부탁합니다(Group By)
Close;

SQL.Clear;

SQL.Add('SELECT C.NUM, O.날짜, O.증명, C.이름, C.품명,');

SQL.Add(' SUM(O.금액) FROM DATA1 C, DATA2 O');

SQL.Add('WHERE C.NUM = O.NUM and O.날짜 = :O.날짜');



SQL.Add('GROUP By C.NUM, O.날짜, O.증명, C.이름, C.품명, O.금액');



ParamByName('O.날짜').AsString := Edit1.Text;

end;



Open;



j := Fields[5].AsCurrency;



Edit2.Value := j;



SUM(O.금액)의 합계를 j에 넣으면 되는데 검색된 필드전체 합계가 안나오는군요

어떻하면 검색된 필드의 합을 전부 계산해서 j에 넣을수 있는지요?

부탁합니다..........

2  COMMENTS
  • Profile
    양우 2000.10.20 18:58
    질문처럼 C.num, O.날짜, C.이름, C.품명별로 Group by를 해서 금액의 합을 구하시려면 Group by 절에서 O.금액을 빼고 해야 됩니다.

    즉 아래의 쿼리로 바꾸면 될 것 같습니다.

    SQL.Add('SELECT C.NUM, O.날짜, O.증명, C.이름, C.품명,');

    SQL.Add(' SUM(O.금액) FROM DATA1 C, DATA2 O');

    SQL.Add('WHERE C.NUM = O.NUM and O.날짜 = :O.날짜');

    SQL.Add('GROUP By C.NUM, O.날짜, O.증명, C.이름, C.품명');





    아! 그리고 마지막의 질문처럼 오로지 where절 조건에 해당하는 레코드들에 대한 금액의 합을 구하시려면 아래 우히연님이 답한 쿼리로 하는 것도 됩니다.







    이정한 wrote:

    > Close;

    > SQL.Clear;

    > SQL.Add('SELECT C.NUM, O.날짜, O.증명, C.이름, C.품명,');

    > SQL.Add(' SUM(O.금액) FROM DATA1 C, DATA2 O');

    > SQL.Add('WHERE C.NUM = O.NUM and O.날짜 = :O.날짜');

    >

    > SQL.Add('GROUP By C.NUM, O.날짜, O.증명, C.이름, C.품명, O.금액');

    >

    > ParamByName('O.날짜').AsString := Edit1.Text;

    > end;

    >

    > Open;

    >

    > j := Fields[5].AsCurrency;

    >

    > Edit2.Value := j;

    >

    > SUM(O.금액)의 합계를 j에 넣으면 되는데 검색된 필드전체 합계가 안나오는군요

    > 어떻하면 검색된 필드의 합을 전부 계산해서 j에 넣을수 있는지요?

    > 부탁합니다..........







  • Profile
    우희연 2000.10.20 18:16
    이정한 wrote:

    > Close;

    > SQL.Clear;

    > SQL.Add('SELECT C.NUM, O.날짜, O.증명, C.이름, C.품명,');

    > SQL.Add(' SUM(O.금액) FROM DATA1 C, DATA2 O');

    > SQL.Add('WHERE C.NUM = O.NUM and O.날짜 = :O.날짜');

    >

    > SQL.Add('GROUP By C.NUM, O.날짜, O.증명, C.이름, C.품명, O.금액');

    >

    > ParamByName('O.날짜').AsString := Edit1.Text;

    > end;

    >

    > Open;

    >

    > j := Fields[5].AsCurrency;

    >

    > Edit2.Value := j;

    >

    > SUM(O.금액)의 합계를 j에 넣으면 되는데 검색된 필드전체 합계가 안나오는군요

    > 어떻하면 검색된 필드의 합을 전부 계산해서 j에 넣을수 있는지요?

    > 부탁합니다..........



















    무슨말인지는 모르지만 혹시이게대답이 몰려나요??????



    SQL.Add('SELECT SUM(O.금액)');

    SQL.Add('FROM DATA1 C, DATA2 O');

    SQL.Add('WHERE C.NUM = O.NUM and O.날짜 = :O.날짜');









    이렇게 하면될건데~~~~~~~~~