문제
다음 [계약]과 [고객] 테이블에서 SQL문 실행 후 'D' 고객의 총매출 컬럼 값을 쓰시오.
[계약]
| 고객ID | 계약금액 | 상태 |
|---|---|---|
| A | 1000 | 완료 |
| B | 2000 | 취소 |
| C | 1500 | 완료 |
| D | NULL | 완료 |
| E | 3000 | 완료 |
[고객]
| ID | 고객명 |
|---|---|
| A | 갑회사 |
| B | 을회사 |
| C | 병회사 |
| D | 정회사 |
| F | 무회사 |
SQLSELECT 고객.고객명, COALESCE(계약.계약금액, 0) AS 총매출 FROM 고객 RIGHT OUTER JOIN 계약 ON 고객.ID = 계약.고객ID WHERE 계약.상태 = '완료' ORDER BY 계약.고객ID;
정답
0
0
해설
RIGHT OUTER JOIN으로 계약 테이블의 모든 행이 보존됩니다. WHERE 절에서 상태='완료'인 행만 필터링되므로 A(1000), C(1500), D(NULL), E(3000)가 선택됩니다. D 고객의 계약금액은 NULL이므로 COALESCE 함수에 의해 0으로 변환되어 총매출이 0이 됩니다.