2014-09-01 4 views
0

Я пытаюсь изменить оплату сотрудников с использованием данных из отдельной таблицы, чтобы определить, имеет ли сотрудник определенную классификацию заданий.SQL 2012 UPDATING column

Это говорит мне, что у меня есть недопустимое имя столбца. Но столбец существует.

Любая помощь приветствуется, пока я продолжаю искать решение.

Спасибо, ребята.

USE HARTKudlerFineFoods 

SELECT dbo.tblEmployee.empSalary, 
     dbo.tblJobTitle.jobJobClassification 
FROM dbo.tblEmployee 
     FULL OUTER JOIN dbo.tblJobTitle 
        ON dbo.tblEmployee.empJobID = dbo.tblJobTitle.jobJobID 

BEGIN TRANSACTION; 

UPDATE dbo.tblEmployee 
SET empSalary = empSalary * .05946 
WHERE ([jobJobClassification] = '%ist'); 
+1

(1) Этот запрос не имеет смысла. (2) Предполагается ли это два запроса? (3) Почему вы снижаете зарплаты 94,154%? –

ответ

3

Я предполагаю, что вы действительно хотите:

UPDATE e 
    SET empSalary = empSalary * (1 + 0.05946) 
    FROM dbo.tblEmployee e JOIN 
     dbo.tblJobTitle jt 
     ON e.empJobID = jt.jobJobID 
    WHERE jt.jobJobClassification like '%ist'; 

Это даст всем людям, чьи работы титул заканчивается ist рейз на 5.946%.

+3

+1 От имени всех сотрудников Kudler Fine Food, которые избегали большого снижения зарплаты. –