Multiple choice technology programming languages

Which of the following PROC SQL steps gives bonuses (in points) to frequent-flyer program members as follows: - a 50% bonus for members who traveled less than 10,000 miles - a 100% bonus for members who traveled 10,000 miles or more?

  1. proc sql; update work.frequentflyers set pointsearned=pointsearned* case if milestraveled < 10000 then 1.5 if milestraveled >= 10000 then 2 else 1 end;

  2. proc sql; update work.frequentflyers set pointsearned=pointsearned* case when milestraveled < 10000 then 1.5 when milestraveled >= 10000 then 2 else 1 end;

  3. proc sql; update work.frequentflyers set pointsearned=pointsearned* case if milestraveled < 10000 then pointsearned*1.5 if milestraveled >= 10000 then pointsearned*2 else 1 end;

  4. proc sql; update work.frequentflyers set pointsearned=pointsearned* case if milestraveled < 10000 then pointsearned*1.5 if milestraveled >= 10000 then pointsearned*2 else pointsearned*1 end;

Reveal answer Fill a bubble to check yourself
B Correct answer
Explanation

Option B correctly uses CASE with WHEN clauses (not IF) and multiplies pointsearned by the appropriate factor (1.5 for <10000 miles, 2 for >=10000 miles). Options A, C, and D incorrectly use IF instead of WHEN in the CASE statement syntax. Options C and D also incorrectly reference pointsearned again inside the CASE expression, which would cause double multiplication.