안녕하세요,
오라클을 사용하여 조회하는데 이상이 없습니다,
그런데 델파이에 넣고 돌리면 "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;
저도 그러한 경우 많이 겪어 보았습니다.
대부분 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) 정말 골칫거립니다..
별 수단을 다 써도 해결이 안됩니다..