2014-12-08 3 views
2

증가 항목 가격에 대한 Sql 쿼리를 백분율로 쓰고 싶습니다.Sql 여러 항목에 대한 증가 항목 값 가격에 대한 쿼리

시나리오는 다음과 같습니다 - 테이블에서

, 내가 3 coloumn이 : ID, 아이템 이름, 가격

Example : If item-Name is T-shirt, Increase price by 10% 

     item-Name is Jins , Increase price by 50% 

     item-Name is top , Increase price by 5% 
+1

당신이 질문이 있습니까? 그렇지 않으면 테이블/컬럼 식별자에 '-'를 사용하지 마십시오. – Strawberry

답변

2

당신이 조건부 갱신을 할 수있는 테이블을 업데이트하려는 경우.

update table_name 
set 
price = 
case 
when `Item-Name` = 'T-shirt' then price+((price*10) /100) 
when `Item-Name` = 'Jins' then price+((price*50) /100) 
when `Item-Name` = 'top' then price+((price*5) /100) 
end ; 

그리고 선택 시점에 테이블에서 아무런 업데이트도하지 않고 가격을 올리려는 경우 다음과 같이 할 수 있습니다.

select id,`Item-Name`,price, 
case 
    when `Item-Name` = 'T-shirt' then price+((price*10) /100) 
    when `Item-Name` = 'Jins' then price+((price*50) /100) 
    when `Item-Name` = 'top' then price+((price*5) /100) 
    else price 
    end as new_price from table_name; 
+0

그래서 그들은 모두 가격을 100으로 나눈 값입니까? – Strawberry

1

이 시도 : 나는 그것이 작동하는 생각

SELECT a.ID, a.ItemName, a.Price, 
     (CASE WHEN a.ItemName = 'T-shirt' THEN (a.price * 10/100) 
       WHEN a.ItemName = 'Jins' THEN (a.price * 50/100) 
       WHEN a.ItemName = 'top' THEN (a.price * 5/100) 
       ELSE a.price 
     END) AS calculatedPrice 
FROM tableA a 
0
UPDATE TABLENAME SET price = (price*1.1) where item-Name = "T-shirt"; 

UPDATE TABLENAME SET price = (price*1.5) where item-Name = "Jins"; 

UPDATE TABLENAME SET price = (price*1.05) where item-Name = "Top"; 

을 ...

관련 문제