SQL關聯表更新注意事項

2021-06-13 10:56:02 字數 997 閱讀 1016

你可以將select 結果當成乙個派生表與a表關聯更新就可以了

類似如下

update a set 列名 = b.列名 from (select 編碼,count(*)as 列名1,sum(case when 條件 then 1 else 0 end) as 列名 from c表 group by 編碼) as b where a.編號 = b.編號

注意:上面的a表不能取別名,必須寫的是表明.欄位名
例子:
update jd_deptplantaskexecute

set taskname = b.taskname,tasktype = b.tasktype,dutypeople = b.dutypeople,start = b.start,finish = b.finish,duration = b.duration

from (

select z.id as id, y.taskname as taskname, y.tasktype as tasktype, x.userid as dutypeople,y.start as start, y.finish as finish, y.duration as duration from jd_deptplantaskexecute z left join jd_projectplantaskexecute y on z.refid = y.id left join jd_projectptrelateduserexecute x on x.usertype = 1 and x.taskid = y.id where z.planid = newid() and z.istargettask = 1 and z.taskorigintype = 1 and not (z.dutypeople<>x.userid and z.dutydept<>x.ownerdeptid) and y.isend = 1

) as b

where jd_deptplantaskexecute.id = b.id

SQL 注意事項

選擇表名 配置ctrl 3 能夠select 桌 use nb go 物 storedprocedure dbo sp select 指令碼日期 05 28 2015 21 46 25 set ansi nulls on go set quoted identifier on go create p...

sql 注意事項

在 oracle 都是不等於號的意思。都可以使用。但是奇怪的是,我想拿出price 不是180000旳商品時 select id,name,from product where price 180000 執行這個語句是,price null 的記錄不出來,也就是拿不到price 是null的商品,必...

sql 優化注意事項

1.儲存過程比sql語句效率高 儲存過程經過預編譯處理 而sql查詢沒有 2.給表建立索引的字段 常見字段是where 後的條件字段 3.查詢表時使用 nolock 查詢語句不會阻塞 4.不要使用 select from dbo.table 用具體的字段列表代替 不要返回用不到的任何字段。同時避免使...