Q&A

  • 어떤 오류인지? ORA-00979: GROUP BY 의 식이 없습니다
안녕하세요,
오라클을 사용하여 조회하는데 이상이 없습니다,
그런데 델파이에 넣고 돌리면 "ORA-00979: GROUP BY 의 식이 없습니다"라는 오류가 나옵니다.
group by 절에 있는 조건과 select 조건은 동일한데  어디서 나는 오류인지 알수없네요?  

미리 감사합니다.

procedure TForm1.Button1Click(Sender: TObject);
const
sql_txt =
    ' select decode(:gCd, ''Code1'', ''해당없음'', a.group) group   ' +
    '      , sum(a.money)                                           ' +
    '   from Sale a                                                 ' +
    '  where a.company = :compId                                    ' +
    '  group by decode(:gCd, ''Code1'', ''해당없음'', a.group)      ';
begin
   with Query1 do begin
      Close;
      SQL.Clear;
      SQL.Add(sql_txt);
      ParamByName('compId').AsInteger := 1;
      ParamByName('gCd').AsString     := 'Code1';
      Open;
   end;
end;

1  COMMENTS
  • Profile
    착한천사 2007.07.09 00:02
    착한천사 김경록입니다.
    저도 그러한 경우 많이 겪어 보았습니다.
    대부분 Delphi 짝수버젼(예,Delphi 6)에서 많이 겪었습니다.
    아래의 문제는 Parameter(:compId,:gCd)를 인식을 못해서 그러한 것입니다.

    이러한 문제에 봉착해도 해결점은 없더군요..
    절대로 풀이지 않습니다..
    단, parameter를 없애는 방법밖에 없습니다.

      'where a.company = :compId ' +
      'group by decode(:gCd, ''Code1'', ''해당없음'', a.group)      ';
    ==>를
    <!--CodeS-->
      'where a.company = ''값1''    ' +
      'group by decode(''값2'', ''Code1'', ''해당없음'', a.group)      ';
    <!--CodeE-->
    로 변경하시면 잘 될것입니다.

    이러한 버그(Bug) 정말 골칫거립니다..
    별 수단을 다 써도 해결이 안됩니다..