0

Error in the result

I am in this practice https://www.sololearn.com/en/learn/courses/sql-intermediate/code-coach/5041696371?returnUrl=/en/learn/courses/sql-intermediate/lesson/5041541097?p=8 my query: SELECT firstname, lastname, salary, CASE WHEN salary <= 1500 THEN (salary*0.1) WHEN salary >= 1501 OR salary <= 2000 THEN (salary*0.2) WHEN salary >= 2001 THEN (salary*0.30) END AS tax FROM employees ORDER BY lastname The result shows that there is an error in my output compared to the expected output. Why? Your code’s output is: firstname,lastname,salary,tax Amy,Anderson,2300,460.0 Lisa,Anderson,1300,130.0 David,Gibson,1750,350.0 Seth,Gray,2000,400.0 Nelson,Gross,1900,380.0 Bob,Peterson,1400,140.0 John,Smith,1500,150.0 Expected output is: firstname,lastname,salary,tax Amy,Anderson,2300,690.0 Lisa,Anderson,1300,130.0 David,Gibson,1750,350.0 Seth,Gray,2000,400.0 Nelson,Gross,1900,380.0 Bob,Peterson,1400,140.0 John,Smith,1500,150.0 Even if I change the query to WHEN salary >= 2001 THEN (salary*0.50) My output result is the same as above. Please advise

14th Sep 2025, 1:15 AM
Susanna Tran
Susanna Tran - avatar
1 Antwort
+ 2
use AND not OR. also the conditions could be simplifed... SELECT firstname, lastname, salary, CASE WHEN salary<=1500 THEN salary * 0.1 WHEN salary>1500 AND salary<=2000 THEN salary * 0.2 WHEN salary>2000 THEN salary * 0.3 END as tax FROM employees ORDER BY lastname
14th Sep 2025, 1:33 AM
Bob_Li
Bob_Li - avatar