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]의 메뉴번호와 바깥쪽 테이블의 메뉴번호가 일치할 때 라는 조건을 달아줘서 메뉴번호에 맞는 갯수를 넣어준다. 

 

 

 

 

 

 

 

반응형