locked
help please RRS feed

  • Question

  • does anyone know how you would write an increse to all employees salaries with the select EEO-1 classification by 10% and how would you increse all employees salaries by 5%
    Tuesday, January 19, 2010 6:08 PM

Answers

  • Something like this should work. If it doesn't, post some actual data.

    DECLARE @Employees TABLE (ID INT,Class VARCHAR(10),Salary INT)
    INSERT INTO @Employees
    SELECT 1,'EEO-1',60000 UNION ALL SELECT 2,'EEM',65000 UNION ALL 
    SELECT 3,'EEO-1',55000 UNION ALL SELECT 4,'MMT',53500
    SELECT * FROM @Employees
    
    UPDATE @Employees
    SET SALARY = CASE
    	WHEN Class = 'EEO-1' THEN Salary*1.1
    	ELSE Salary * 1.05
    END
    
    SELECT * FROM @Employees

    Abdallah El-Chal, PMP, ITIL, MCTS
    • Proposed as answer by Naomi N Tuesday, January 19, 2010 6:15 PM
    • Marked as answer by ksopiak Tuesday, January 19, 2010 6:59 PM
    Tuesday, January 19, 2010 6:14 PM

All replies

  • Something like this should work. If it doesn't, post some actual data.

    DECLARE @Employees TABLE (ID INT,Class VARCHAR(10),Salary INT)
    INSERT INTO @Employees
    SELECT 1,'EEO-1',60000 UNION ALL SELECT 2,'EEM',65000 UNION ALL 
    SELECT 3,'EEO-1',55000 UNION ALL SELECT 4,'MMT',53500
    SELECT * FROM @Employees
    
    UPDATE @Employees
    SET SALARY = CASE
    	WHEN Class = 'EEO-1' THEN Salary*1.1
    	ELSE Salary * 1.05
    END
    
    SELECT * FROM @Employees

    Abdallah El-Chal, PMP, ITIL, MCTS
    • Proposed as answer by Naomi N Tuesday, January 19, 2010 6:15 PM
    • Marked as answer by ksopiak Tuesday, January 19, 2010 6:59 PM
    Tuesday, January 19, 2010 6:14 PM
  • THANK YOU VERY MUCH TAHT IS WHAT I WAS LEANING TOWARDS BUT LEFT OUT A FEW STEPS THANK YOU AGAIN

    WOULD YOU HAPPEN TO NO THE STEPS FOR CALCULATING THE MAXIMUM SALARY FOR ALL EMPLOYEES?
    Tuesday, January 19, 2010 7:01 PM
  • Select Max(Salary) as MaxSalary from EmployeeSalary
    Premature optimization is the root of all evil in programming. (c) by Donald Knuth

    Naomi Nosonovsky, Sr. Programmer-Analyst

    My blog
    Tuesday, January 19, 2010 7:07 PM
  • You are most welcome.
    I'm not sure I really know what you need, so I will make an assumption

    DECLARE @Employees TABLE (ID INT,Class VARCHAR(10),Salary INT)
    INSERT INTO @Employees
    SELECT 1,'EEO-1',60000 UNION ALL SELECT 2,'EEM',65000 UNION ALL 
    SELECT 3,'EEO-1',55000 UNION ALL SELECT 4,'MMT',53500 UNION ALL
    SELECT 1,'EEO-1',62000 UNION ALL SELECT 2,'EEM',68000
    SELECT * FROM @Employees
    
    ;WITH CTE AS
    (
    	SELECT ID,Class,Salary
    		,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY SALARY DESC
    			          ) AS Row
    FROM @Employees
    )
    SELECT ID
    		,Class
    		,Salary
    FROM CTE 
    WHERE Row = 1

    Abdallah El-Chal, PMP, ITIL, MCTS
    Tuesday, January 19, 2010 7:07 PM