DB
Select 절에서 서브쿼리로 count값 구하기(MS-SQL)
이안_ian
2019. 7. 16. 13:28
반응형
문제.
1. [order]라는 주문 테이블에서 2번이상 주문된 메뉴와 그 메뉴의 타입을 제외해라
2. 제외된 음식들 빼고 나머지 음식들의 주문 갯수를 출력.
--select절에서 count하기
select menuno, name, (select count(*) from [order] where menuno = s.MENUNO) as '주문 개수'
from ordersheet s where type not in
(select type from ordersheet where menuno in
(select menuno from [order] group by MENUNO having count(*)>1)) ;
설명 :
1. [order]에서 menuNo로 group by해서 주문된 수가 1보다 큰 메뉴번호를 찾고 다음 select에서 그 메뉴의 type을 찾는다.
2. 메뉴 테이블에서 찾았던 타입과 같지 않은 메뉴들의 번호와 이름을 출력한다. -->1번 해결
3. 주문 갯수는 select절에서 새로운 select를 만들어서 [order]의 갯수를 카운팅한다.
4. [order]의 메뉴번호와 바깥쪽 테이블의 메뉴번호가 일치할 때 라는 조건을 달아줘서 메뉴번호에 맞는 갯수를 넣어준다.
반응형