-------Merge----
--select * from city
--now lets try to insert a new id...Let's do it by stored procedure
alter procedure insertproc
@id int,
@name varchar(70)
as
begin
update city set name=@name where id=@id
if(@@rowcount=0)
begin
insert into city(id,name) values(@id,@name)
end
end
--exec insertproc 6,'calcutta'
--select * from city
------------------------------but this can be done using merge statement--------
merge into city c
using (select 7 id,'lucknow' name) b
on(c.id=b.id)
when matched then
update set name=b.name
when not matched then
insert(id,name)values(b.id,b.name);
--select * from city
merge into city c
using (select 7 id,'lucknowUpdated' name) b
on(c.id=b.id)
when matched then
update set name=b.name
when not matched then
insert(id,name)values(b.id,b.name);
--select * from city
create table citydesination
(
id1 int,
name1 varchar(70)
)
select * from citydesination--no record
--lets insert one record
insert into citydesination(id1,name1) values(7,'lucknowindestination')
select * from citydesination
--lets insert using merger
merge into citydesination d
using(select id,name from city)b
on (d.id1=b.id)
when matched then
update set name1=b.name
when not matched then
insert (id1,name1)values(b.id,b.name);
select * from citydesination
---------------------------How i used it in my stored procedure in my project-----------------
merge into #temp1 t
using (select empcode from tbl_SMM_Roster where dtdate > dateadd(dd,-30,getdate())group by empcode) smm
on t.userid=smm.empcode
when matched then
UPDATE SET [SMM DETAILS] = (select CONVERT(VARCHAR(11),dtDate,6)
from tbl_SMM_Roster WITH(NOLOCK) where empcode=@userid
order by dtdate desc
OFFSET 0 ROWS
FETCH NEXT 1 ROWS ONLY) ;
merge into #temp1 t
using (select empcode from tbl_VW_Roster where dtdate > dateadd(dd,-30,getdate())group by empcode) vw
on t.userid=vw.empcode
when matched then
UPDATE SET [GTT DETAILS] = (select CONVERT(VARCHAR(11),dtDate,6)
from tbl_VW_Roster WITH(NOLOCK) where empcode=@userid
order by dtdate desc
OFFSET 0 ROWS
FETCH NEXT 1 ROWS ONLY) ;
-------------------------------------------------------------------------------------
No comments:
Post a Comment