> 아래와 같은 3개의 테이블이 있을 경우...
> (물론 이외에도 더 많은 테이블이 있습니다.)
>
>
> """"제품별 주문량이 언제 몇개인지 주문일자 순으로(ASC)...""""
>
>
> 를 group by 와 order by 에 의해 수행하려 합니다.
> 근데 자꾸 에러가 납니다.
>
> SQL> select product.id, product.name, item.quantity, ord.date_ordered from s_ord ord, s_product
> prod
> uct, s_item item group by product.id order by ord.date_ordered;
> select product.id, product.name, item.quantity, ord.date_ordered from s_ord ord, s_product produ
> ct,
> *
> ERROR at line 1:
> ORA-00979: not a GROUP BY expression
>
>
----> answer
일단 한가지 집고 넘어가야 할 일이 있습니다.
group by를 언제 사용하냐 하는 것이지요...
group by는 일반적으로 select문에서 group을 나누는 함수를 쓸 경우에 사용을 하게되지요...(예를들면 count(), max(), min()등의 함수를 쓸 경우에 select문에 이러한 함수들과 같이쓰인 일반 field들을 group by 다음에 쓸 수 있게 되는 것이지요...
이 부분에서 잘못을 하신게 아닌가 합니다.
지금 위에 써 놓으신 sql문은 select문에 이러한 함수들을 쓰지 않고, 일반field
들만 나열을 해 놓았기 때문에, group by로 묶는 경우에 한 그룹으로 묶이지 않고
각각의 레코드를 가져오기 때문에 에러가 나는 것이라고 말할 수 있을 것입니다.
저의 짧은 지식으로 말씀을 드렸습니다.
도움이 되셨으면 좋겠네요....
|