2016-03-05 55 views
0

EasyShop的管理人员希望将物品分类为便宜,实惠,昂贵且非常昂贵。如果商品单价在0到499之间,则为“廉价”,如果在500和1999之间则为“经济实惠”,如果在2000和4999之间则为“昂贵”,并且如果价格大于或等于5000,那么进行分类,昂贵'。编写查询以显示项目的项目类型和分类。按升序显示按项目类型和分类排序的唯一行。需要解决查询

这是我的查询

SELECT DISTINCT ItemType, 
CASE 
Price BETWEEN 0 AND 499 THEN 'Cheap' 
Price BETWEEN 500 AND 1999 THEN 'Affordable' 
Price BETWEEN 2000 AND 4999 THEN 'Expensive' 
Price >=5000 THEN 'Very Expensive' 
END Classification 
FROM Item 
+0

我认为你需要添加一个'ORDER BY'并且可能删除'DISTINCT'。 –

+1

那么你的问题到底是什么? – Mureinik

+0

查询没有给出输入。显示错误,错位从 – Shirley

回答

0

你们是不是有点像下面?检查出来:

SELECT DISTINCT CASE 
WHEN Price BETWEEN 0 AND 240 THEN 'Cheap' 
WHEN Price BETWEEN 241 AND 1200 THEN 'Expensive' END AS Range 
FROM Products 
ORDER BY Price 
+0

究竟是什么!!!!!!!!! – Shirley

+0

解决方案是否工作?让我知道。 –

+0

不,它不工作。 – Shirley

0

您需要由ItemType的,分类添加为了在您的查询。您还应该在CASE声明中包含WHEN

SELECT DISTINCT ItemType, 
CASE WHEN 
     Price BETWEEN 0 AND 499 THEN 'Cheap' 
     Price BETWEEN 500 AND 1999 THEN 'Affordable' 
     Price BETWEEN 2000 AND 4999 THEN 'Expensive' 
     Price >=5000 THEN 'Very Expensive' 
END Classification 
FROM Item 
ORDER BY ItemType, Classification