나누어진 주소를 합하여 group by를 하면 에러가 납니다.
사용 DB : 파라독스
테이블 Yeongsu --> Y_NUM,C_NUM,C_NUM1,EA,OUTPUT
Custom -->C_NUM,TEL,addr_dong, addr_bungi, addr_hosu
Familly -->C_NUM,C_NUM1,C_NAME
작업할 내용
--> 출고가 완료되지 않은 영수증만 추출하여 고객별로 집계하려고 함
문제점 (addr_dong+ addr_bungi+ addr_hosu) as TT 에서 에러
select tel, c_name, (addr_dong+ addr_bungi+ addr_hosu) as TT,
sum(ea), sum(output), sum(ea-output) as jan
from yeongsu, custom, familly
where yeongsu.c_num = custom.c_num
and yeongsu.c_num = familly.c_num
and yeongsu.c_num1 = familly.c_num1
group by tel, c_name,TT
order by c_name, tel
하면 invalid field name TT 하는 error 나는데
왜그렇죠?
에러없이 group by 하는 방법은 없나요?
' addr_dong+ addr_bungi+ addr_hosu ' 와 TT 의 차이지요.
group by 이하의 절에는 from 이하의 정의된 테이블 필드가 정확하게 명시되어야 하죠.
근데 TT 는 select 된 특정필드의 가명이라는 거죠.
결론은 아래와 같이 하면 됩니다.
select tel, c_name, (addr_dong+ addr_bungi+ addr_hosu) as TT,
sum(ea), sum(output), sum(ea-output) as jan
from yeongsu, custom, familly
where yeongsu.c_num = custom.c_num
and yeongsu.c_num = familly.c_num
and yeongsu.c_num1 = familly.c_num1
group by tel, c_name,(addr_dong+ addr_bungi+ addr_hosu)
order by c_name, tel
참고로 oracle DB 람 위의 문장이 문제 없을듯 싶구여...
혹여나 paradox 람 ... group by 절이하에 조작된 값은 인식이 안되던데요...
_____________________
(addr_dong+ addr_bungi+ addr_hosu) as TT