Q&A

  • DbGrid에 합계랑 카운트를 나타내려고 할려면??
procedure TF03210.B_searchClick(Sender: TObject);
var S_Sale_Date  :String;
    S_Sale_Date1 :String;
begin
  S_Sale_Date  :=FormatDatetime('YYYYMMDD',D_Sale_Date.Date);
  S_Sale_Date1 :=FormatDatetime('YYYYMMDD',D_Sale_Date1.Date);

  try
    with Query_disp, SQL do
    begin
      Clear;
      Close;
      Add(' select sale_date ,count(*),sum(jg_amt) from junggan_money ');
      Add(' where sale_date >='+ Quotedstr(S_Sale_Date) );
      Add(' and sale_date <='  + Quotedstr(S_Sale_Date1));
      Add(' group by sale_date ');

      Open;
      datasource1.dataset :=Query_disp ;
    end;
  except
    ;
  end;
end;

이렇게 합계랑 카운트를 구할려고 하는데요 ...
날짜는 조회가 되는데........
카운트랑 합계가 뜨지 않거든요 무슨 문제가 있는지??
값은 들어있어요 ..

4  COMMENTS
  • Profile
    major 2002.04.05 00:04
    안녕하세요..
    그러시면 쿼리문을 이렇게 바꿔 보시면 어떨까여?
    with Query_disp, SQL do begin
        Clear;
        Close;
        Add(' select sale_date ,count(*),sum(jg_amt) from junggan_money ');
        Add(' where sale_date >='+ Quotedstr(S_Sale_Date) );
        Add(' and sale_date <='  + Quotedstr(S_Sale_Date1));
        Add(' group by sale_date ');
        Open;
    end;

    이런식으로 되어있는 부분을
    with Query_disp, SQL do begin
        Clear;
        Close;
        Add(' select sale_date ,count(sale_date) Cnt,sum(jg_amt) JG_AMT from junggan_money ');
        Add(' where sale_date >='+ Quotedstr(S_Sale_Date) );
        Add(' and sale_date <='  + Quotedstr(S_Sale_Date1));
        Add(' group by sale_date ');
        Open;
    end;
    위와 같이 바꿔서 해 보시면 될것 같은 데요..
    제가 테스트를 못해 봤지만 그래도 될 것 같아여...(?)
    그럼 즐프하시고요..
    혹시 안 되시면 제게 메일을 주세여...

  • Profile
    공선옥 2002.04.05 00:38
    먼저 답변 감사하구요
    with Query_disp, SQL do begin
        Clear;
        Close;
        Add(' select sale_date ,count(sale_date) Cnt,sum(jg_amt) JG_AMT   from junggan_money ');
        Add(' where sale_date >='+ Quotedstr(S_Sale_Date) );
        Add(' and sale_date <='  + Quotedstr(S_Sale_Date1));
        Add(' group by sale_date ');
        Open;
    end;

    syntax error(missing operator) in query  express 'count(sale_date) Cnt '
    이런식으로 나왔거든요
    근데 뒤에 Cnt 이렇게 나온건 As Cnt와 같은 효과를 주기위해 쓰신건지??

  • Profile
    머슴 2002.04.05 01:20
    실제로 DB가 없으니 ....
    그러니까  Open전에   SaveToFile('C:a.sql'); 이문장을
    돌리면 C:a.sql이라는 화일이 생성이 됩니다...
    이때 이화일 열어서 ORACLE이면 SQL*Plus(DB에 따라서 툴을 이용하여)
    떨어진 문장을 한번 돌려보세요...

    그럼 SQL 구문에러인지 코딩이 잘못되어 있는지를 알수 있을것 같은데요..
  • Profile
    공선옥 2002.04.05 01:31
    답변 감사합니다.
    제가 DBGrid에서 columns의 값을 안 바꿔줘서 값이 안나온것 같아요
    columns에 제가 값을 얻고자 하는 곳에 Sale_Count , Sale_Amt 로 바꿔 줬더니 값이 나오더라구요

    삽질 많이 했어요 ^^
    --------------------------------------------------------------

      with Query_disp, SQL do begin
        Clear;
        Close;
        Add(' select sale_date,count(sale_date) As Sale_Count ,sum(jg_amt)As Sale_Amt ');
        Add(' from junggan_money ');
        Add(' where sale_date >='+ Quotedstr(S_Sale_Date) );
        Add(' and sale_date <='  + Quotedstr(S_Sale_Date1));
        Add(' group by sale_date ');
        //memo1.lines.add(sql.text);
       Open;
       end;