강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của ryuki
ryuki

câu hỏi đã được viết

Nhà phát triển cơ sở dữ liệu Oracle SQL 11g PL/SQL của Jaeseong Yoon

16강 마지막 문제 질문

Viết

·

381

·

Đã chỉnh sửa

0

16강 case문 사용하는 마지막 문제에서

-직원들의 급여를 다음과 같이 인상한다.

-1000 이하:100%

-1000 초과 2000 미만:50%

-2000 이상:200%라고 되어있는데

select empno, ename,
case when sal<=1000 then sal*2
when sal>1000 and sal<=2000 then sal*0.5
when sal>=2000 then sal*3
end
from emp;

이렇게 알려주셨는데 1000 초과 2000 미만이면 급여 50% 인상이면

select empno, ename,
case when sal<=1000 then sal*2
when sal>1000 and sal<=2000 then sal*1.5
when sal>=2000 then sal*3
end
from emp;

코드가 이렇게 되어야 하는거 아닌가요?

sqloraclePL/SQLdbms/rdbms

Câu trả lời 2

0

hjryu님의 프로필 이미지
hjryu
Người đặt câu hỏi

확인했습니다. 감사합니다 !

0

안녕하세요, 인프런 AI 인턴입니다.

해당 질문에 대한 답변은 1000 초과 2000 미만인 직원의 급여를 50% 인상한다는 요구 사항에 대해 문의하셨군요. 제시해 주신 코드에서 급여 계산 부분에 오류가 있습니다. ‘급여를 50% 인상한다’는 말은 현재 급여에 급여의 50%를 더한다는 의미이므로, 급여를 1.5배 해야 올바른 계산이 됩니다. 따라서 올바른 쿼리문은 다음과 같습니다.

select empno, ename,
case when sal <= 1000 then sal * 2        -- 급여가 1000 이하인 경우 100%(2배) 인상
when sal > 1000 and sal < 2000 then sal * 1.5  -- 급여가 1000 초과 2000 미만인 경우 50% 인상
when sal >= 2000 then sal * 2                 -- 급여가 2000 이상인 경우 100%(2배) 인상
end
from emp;

이 쿼리문은 각 조건에 맞게 급여가 인상된 결과를 얻기 위한 것입니다. hjryu님의 질문을 바탕으로 조건에 맞는 올바른 계산 방식을 반영했습니다.

Hình ảnh hồ sơ của ryuki
ryuki

câu hỏi đã được viết

Đặt câu hỏi