我有列SQL查詢來更新
name | salary
-------------
A | 5000
B | 2000
c | 1000
另一個表 作品與列
name| work
---------
A | w1
A | w2
A | w3
B | w4
B | w5
我想100%的工作,以提高員工的工資和更新此表的員工只有數的作品都大於1. 任何人都可以幫我解決這個問題。我需要一個SQL更新查詢(沒有存儲過程或觸發器或遊標)。
我有列SQL查詢來更新
name | salary
-------------
A | 5000
B | 2000
c | 1000
另一個表 作品與列
name| work
---------
A | w1
A | w2
A | w3
B | w4
B | w5
我想100%的工作,以提高員工的工資和更新此表的員工只有數的作品都大於1. 任何人都可以幫我解決這個問題。我需要一個SQL更新查詢(沒有存儲過程或觸發器或遊標)。
請嘗試使用MERGE語句:
MERGE
INTO employee
USING (
select distinct "name", count(*) over (partition by "name") cnt from works
)x
ON (employee."name" = x."name")
WHEN MATCHED THEN
UPDATE
SET salary = salary+(100*case when cnt=1 then 0 else cnt end);
這裏是正確的查詢
update employee as a set salary = salary + 100 * NVL((
SELECT count(*)
FROM works as b
where b.name=a.name
group by name
having count(*)>1), 0)
其實我需要100個幹活的意思是一個應該得到300增量和B應該得到200增量等... – user2881088
檢查更新回答 –
非常感謝。它完美的工作正常。 – user2881088
謝謝......它的工作。 – user2881088
即使員工有1項工作完成,此查詢也會添加100 –
請檢查編輯後的答案。 – TechDo