Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как правильно написать Запрос на SQL

MrAbuloff Профи (689), на голосовании 2 года назад
Как правильно написать Запрос на SQL которые прибавляется сотрудникам 100 к зарплате которые совершили 25 или более продаж в этом месяце

Имеем users (id, division, login, block)

emploees (id,fullname, salary, firedDate, hiredDate, chief)

sales (id, login, summ, saledate)
Дополнен 2 года назад
Есть таблицы со следующей структурой
users (id, division, login, block)
id - первичный ключ
division - отделение сотрудника
login - логин
block - блокирован - 1 или активен - 0

emploees (id,fullname, salary, firedDate, hiredDate, chief)
id - внешний ключ
fullname - ФИО
salary - зарплата
fireDate - дата увольнения
hiredDate - дата приема на работу
chief - руководитель

sales (id, login, summ, saledate)
id - внешний ключ
login - логин сотрудника
summ - сумма продажи
saledate - дата продажи
Голосование за лучший ответ
myodo.ru Мудрец (12806) 2 года назад
Диалект Oracle. Не проверял.
update employees set salary=salary+100000 where id in (select id from sales where saledate between trunc('month',sysdate) and sysdate group by id having count(1)>24) and fireddate is null
MrAbuloffПрофи (689) 2 года назад
а вот такой вариант?
UPDATE employees SET salary = salary +100
WHERE MONTH(`date`) = MONTH(NOW()) AND YEAR(`date`) = YEAR(NOW())
AND (SELECT count (*) FROM @sales WHERE username = u.username) >= 25
myodo.ru Мудрец (12806) логика и синтаксис нарушены. даст ошибку и не будет исполнен.
Алексей Стуров Мастер (1571) 2 года назад
Я бы такую задачу бы решал через триггер... "Если поле "количество продаж" превышает 25, то поле "зарплата" изменить на +100" и поле "обработано" изменить с "0" на "1"... Таким образом, решаются основные задачи.
MrAbuloffПрофи (689) 2 года назад
вот и мне и интересно, как это прописать в запрос "Если поле "количество продаж" превышает 25, то поле "зарплата" изменить на +100"....
Похожие вопросы