问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sqlserver两张表数据同时更新?

发布网友 发布时间:2022-05-02 03:48

我来回答

3个回答

懂视网 时间:2022-05-02 08:09

。似乎很简单

但是今天我遇到这样一个问题:我需要更新一张叫PO_SPECIAL_TASK_LINE表的score字段,这个分数通过另外一张打分详情表(special_assessment_score_detail)计算出来的,

他们之间的关联是字段是taskId和taskLineID。

好了,我马上就写出了如下语句:

update PO_SPECIAL_TASK_LINE

set score=(

SELECT SUM(score) FROM
(SELECT AVG(CONVERT(decimal,score)) score,TASK_LINE_ID FROM dbo.special_assessment_score_detail WHERE TASK_ID=‘‘
GROUP BY TASK_LINE_ID,SPECIAL_INDICATORS_ID) a
GROUP BY TASK_LINE_ID

)

where task_id=‘‘

 

目的很简单,通过一张打分表算出当前任务的所有行的每个指标的平均分并求和更新到任务行表的对应行中

上面的写法如果是一个任务只有一行是没有问题的,但是如果一个任务有多行数据,我需要批量更新的话,显然这是不行的。

那么这里就用到了update的高级用法(自我称之为高级):

update 表1

set 表1.score=表2.score

from 表1,

表2

where 表1.task_line_id=表2.task_line_id

这里的表2可以是一个查询视图,老铁们是不是觉得很高级,这样不管表2中有几个score,都可以对应更新到表1中了

这里也贴上我在项目中的源码:

UPDATE dbo.PO_SPECIAL_TASK_LINE
SET PO_SPECIAL_TASK_LINE.SCORE=a.score
FROM PO_SPECIAL_TASK_LINE,
(SELECT CAST(ROUND(SUM(score),0) AS INT) score,TASK_LINE_ID
FROM (
SELECT AVG(CONVERT(decimal,score)) score,TASK_LINE_ID FROM dbo.special_assessment_score_detail WHERE TASK_ID=#{taskId} AND PROCESS_STATUS IN (‘4‘,‘5‘,‘0‘) GROUP BY SPECIAL_INDICATORS_ID,TASK_LINE_ID
)s GROUP BY TASK_LINE_ID) a
WHERE PO_SPECIAL_TASK_LINE.TASK_LINE_ID=a.TASK_LINE_ID
AND PO_SPECIAL_TASK_LINE.TASK_ID=#{taskId}

这是mybatis中XML中的代码,参数就是任务ID(taskId)

 

sqlserver关联更新问题

标签:date   更新   detail   round   group by   set   语句   where   需要   

热心网友 时间:2022-05-02 05:17

可以,用触发器可以实现,不过初学应该不会涉及到这么难的吧,写两个sql就可以啦,先更新一张表的列,然后再写一句更新另一张表

热心网友 时间:2022-05-02 06:35

因为不知道你表的字段和类型所以我就随便先定义了下,sql语句如下:
declare
@name
varchar(10),@id
varchar(10),@usr
varchar(10)
declare
a
cursor
for
select
*
from
a;
open
a;
fetch
a
into
@name,@id,@usr;
while
@@fetch_status
=
0
begin
update
b
set
usr=@usr
where
name=@name
and
id=@id;
fetch
a
into
@name,@id,@usr;
end
close
a;
deallocate
a
当中的name,id,usr对应是你的用户身份和帐号字段你自己修改下就可以了
sql server 如何同时更新两张有关系的表

可以使用事务,但是只有当两张表都被更新了才会执行成功,否则事务回滚.例如:begin tran --开始执行事务 update bb set moneys=moneys-@momeys where ID=@fromID -执行的第一个操作,转账出钱,减去转出的金额 update bb set moneys=moneys+@momeys where ID=@toID --执行第二个操作,接受转账的...

sql可以两个表一起更新数据吗

如果两个表有关联的话是可以的,比如A表的id和b表的b_id外键关系就可以 update a left join b on a.id = b.b_id set a.name = '',b.name='' (where条件)

sqlserver中的两个表如何实现同时更新?(详见问题说明)

表1和表2建立一个外键关联,设置成集联更新就行了 用触发器也可以

SQLSERVER中同时更新两表中的数据

如果没有一定的条件非要更新两张表,就用两个UPDATE语句好了,我还没有使用过单纯的直接更新,给你一个关联两个表的语句:UPDATE titles SET ytd_sales = titles.ytd_sales + sales.qty FROM titles, sales WHERE titles.title_id = sales.title_id AND sales.ord_date = (SELECT MAX(sales.or...

有两个电脑都安装SQL server,都有一个相同的数据库,如何实现两个数据库...

SQL数据同步:利用数据库复制技术实现数据同步(同时)更新、复制等概念 说明 :复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据...

sqlserver2000中怎么才能同时更新两个表内的数据?

UPDATE [A].[a1]=@a1,[B].[b1]=@b1 FROM [A] INNER JOIN [B] ON [A].[x]=[B].[x]

sqlserver如何同时更新多条数据记录?

1、首先打开sql server managment工具,设计一个数据表,如下图所示。2、然后往数据表中插入一些数据,如下图所示。3、接下来如果想更新某个记录的话,一般通过如下图所示的update语句进行更新。4、但是如果想一下同步多条记录的话,这种更新就不能满足了,如下图所示。5、然后就可以用update和case进行...

如何同步两个SQLServer数据库的内容

选择一个表,执行如下sql: insert into wq_newsgroup_s select '测试成功',5 复制监视器->发布服务器(zehuadb)->sz:sz->快照->启动代理程序 ->zlp:sz(强制)->启动同步处理 去查看同步的 wq_newsgroup_s 是否插入了一条新的记录 测试完毕,通过。7:修改数据库的同步时间,一般选择夜晚执行...

sqlserver同一数据库中A,B两表。使用触发器实现两表双向的数据同步添加...

这个错误很明显 就是SET IDENTITY_INSERT TB_Customer ON 你这条语句在a触发器中已经开启 而b触发器也开启了 此时a触发器还没有关闭IDENTITY_INSERT 另外一个又打开 肯定会报错了 不为什么要插入标识列? 设为自动增长 就不需要这个命令了 你的触发器就可以同时执行 ...

sqlserver不同数据库怎么让数据实时同步?

可以使用数据库比较与同步工具DBSync,具体做法:先建立一个任务:以A为同步之源,以B为同步之目标,同步方式设置为增量同步,以后,只要A发生增删改,就会同步更新至B。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...新南站到郑州市东明路和纬五路交叉口的肿瘤医院,最少转乘,大概多长... 合肥济民肿瘤医院到合肥汽车南站怎么坐公交车? 合肥凤凰肿瘤医院下高铁后怎么走打的大概要多少钱 什么是爱情,我又迷糊了!哎…… 三个月宝宝拉绿便便怎么回事 GB/T276-1994 圆柱滚子轴承 6311-2rs/z1 这个型号各字母所代表的意思... 6208轴承最高限速多少 为什么我在电脑上下载的photoshop软件都是花钱的,要不打不开。怎么才 ... 6204轴承是什么类型的轴承? 爱情天梯是真的吗 高岭土-有机插层复合物的表征 高岭土检测 高岭土是不是只有山区有? 降低造纸涂布用高岭土黏度的试验研究 请问怎样鉴别高岭石,谢谢! 高龄土是什么? 陶土和高岭土有什么区别,化学成份各是什么 高岭土矿床地质 高岭土(Kaolinite) 高岭土的成分是什么?高岭土的特点是什么? 高岭土主要成分检测是什么? 电饭煲的额定功率与保温功率有什么关系,怎样换算的? 急急急!!!!求洛克王国外i挂100级无毒,网站什么的都可以, 能成功就行 我的电脑输中毒了,老是出现ZZZZZZZZZZ现象,怎么办啊? 许嵩zzzzzzzzzzz 别人的域名能打开我的网站 跪求日本歌手olivia 的歌曲,越多越好~~PLZZZZZZZZZZZZZZZzzzzz 个人可以做网站挂百度上吗? 求APH比/利/时MMD模型配布网址 谁有办法把这个动漫视频下载下来,下载成功后再回答 盘点印度电影老电影大全,【在线观看】免费百度云资源 跪求经典印度老电影排行榜前十名,【免费高清】在线观看百度网盘资源 国破山河在 城春草木深历史背景 国破山河在,城春草木深的历史背景 跪求印度80年代老电影大全,【在线观看】免费百度云资源 国破山河在城春草木深历史背景 有一部电影,大约20年前的印度老电影 国破山河在城春草木深这一句的历史背景是 求一部印度爱情老电影 国破山河在 城春草木深 这一诗句的历史背景是 谁还记得那部印度老电影的名字?谢谢 求一部印度老电影的名字 国破山河在城春草木深这一句诗句的历史背景是什么 国破山河在城春草木深这一诗句的历史背景 国破山河在城春草木深这诗句的历史背景是 国破山河在,城春草木深.“国破”写的是什么历史事件 js在IE下报 object error,该怎么解决 IE老是跳出object error的框框来,怎么办的啊? IE Object Error怎么回事 IE打开网站出现checkupgrade error:[object error]错误