Q&A

  • substring한 field를 group by 하는 방법좀(파라독스에서)
문제해결을 부탁드립니다.

DB는 델파이에 있는 파라독스입니다.

문제의 sql문이 밑에 있는데

select substring(inoutdate from 1 for 7) as yearmonth,inoutitemname,

inoutitemtype, SUM(inoutmoney) as totalmoney from tblinout

GROUP BY substring(inoutdate from 1 for 7) as yearmonth, inoutitemname,

inoutitemtype

order by substring(inoutdate from 1 for 7) as yearmonth, inoutitemname,

inoutitemtype



sql문을 실행시키면 'invalid ues of keyword' 라는 메세지가 뜨는데 문제해결을 부탁드립니다.

파라독스에서는 이러한 문장이 지원되지 않는지 그리고 월별로 합계를 내는방법좀 가르쳐 주십시요.

부탁드립니다.



1  COMMENTS
  • Profile
    박성훈 2000.02.27 22:48
    손진운 wrote:

    > 문제해결을 부탁드립니다.

    > DB는 델파이에 있는 파라독스입니다.

    > 문제의 sql문이 밑에 있는데

    > >

    > sql문을 실행시키면 'invalid ues of keyword' 라는 메세지가 뜨는데 문제해결을 부탁드립니다.

    > 파라독스에서는 이러한 문장이 지원되지 않는지 그리고 월별로 합계를 내는방법좀 가르쳐 주십시요.

    > 부탁드립니다.

    > select substring(inoutdate from 1 for 7) as yearmonth,inoutitemname,

    > inoutitemtype, SUM(inoutmoney) as totalmoney from tblinout

    > GROUP BY substring(inoutdate from 1 for 7) as yearmonth, inoutitemname,

    > inoutitemtype

    > order by substring(inoutdate from 1 for 7) as yearmonth, inoutitemname,

    > inoutitemtype



    저도 파라독스를 쓰고 있는데요. 아마도 위와 같은 그룹질의는 허용되지 않는 것 같습니다.

    날짜필드를 년,월,일로 쪼개서 사용하시고 보여줄때는 계산필드를 써서 세필드를 합쳐주는 것도 한 방법이 될 것 같은데요.

    만약 특정년도의 월합계만 구한다면 좀 무식하지만 for문을 써서 구할 수도 있을 것 같군요.





    function TForm1.CalculateMonthlyTotal(year:String):Double;

    begin

    Result:=0;



    for i:=1 to 12 do

    begin

    with Query1 do

    begin

    Close;

    sql.Clear;

    sql.Add('select sum(inoutmoney) from tblinout ');

    sql.Add('where substring(inoutdate from 1 for 7)=:n1');

    ParamByName('n1').AsString:=year+'-'+Format('2.2d',[i]);

    Open;

    if EOF then continue;

    Result:= Result+Fields[0].AsFloat;

    end;

    end;



    파라독스 쓰시다가 답답할 때가 많으시죠? 어쨋든 위의 답이 작은 도움이라도 되길

    바랍니다. 즐프하세요~.