-1
CREATE TABLE EMPSAL
(
  ID INT ,
  NAME VARCHAR(40),
  SALARY FLOAT,
  INCENTIVES FLOAT  
)

INSERT INTO EMPSAL VALUES (1,'ABHI',500,NULL)
INSERT INTO EMPSAL VALUES (2,'BABY',600,NULL)
INSERT INTO EMPSAL VALUES (3,'CHARAN',3000,NULL)
INSERT INTO EMPSAL VALUES (4,'DHANA',4000,NULL)
INSERT INTO EMPSAL VALUES (5,'EMO',5000,NULL)
INSERT INTO EMPSAL VALUES (6,'FARAN',6000,NULL)
INSERT INTO EMPSAL VALUES (7,'GEO',7000,NULL)
INSERT INTO EMPSAL VALUES (8,'JAHANGEER',8000,NULL)

Update Incentive column to (SALARY + 5% OF SALARY) if salary is < 1000.

Update Incentive column to (SALARY + 7% OF SALARY) if salary is < 5000.

Update Incentive column to SALARY if salary is above 6000.

I have no clue how to initiate for this query.

3 Answers3

1

Just use Case like below:

Update EMPSAL
Set Incentive =
Case
    WHEN Salary < 1000 then SALARY * 1.05  
    WHEN Salary < 5000 AND salary >= 1000 THEN SALARY *  1.07
    ELSE SALARY
End
Hasan Gholamali
  • 633
  • 4
  • 13
0
UPDATE EMPSAL
SET INCENTIVES = (CASE WHEN Salary < 1000 then SALARY * 0.05  
                      WHEN Salary < 5000 AND salary >1000 THEN SALARY *  0.07
                      ELSE SALARY 
                      END)
Rajat Jaiswal
  • 645
  • 4
  • 15
0

This should work within the rules you specified (though not you have a gap if the salary is between 5000 and 6000 where it's undefined:

UPDATE EMPSAL
SET INCENTIVES = CASE 
        WHEN SALARY < 1000
            THEN SALARY + (SALARY * 0.05)
        WHEN SALARY BETWEEN 1000 AND 5000
            THEN SALARY + (SALARY * 0.07)
        WHEN SALARY >= 6000
            THEN SALARY
        END