求UPDATE语句,现在单行子查询返回多个行

已建有两张表A,BA姓名年度张三2009张三2010李四2009王五2009王五2010王五2011得出B的对应年限B姓名对应年限张三2李四1王五3updateBset对... 已建有两张表A,B
A
姓名 年度
张三 2009
张三 2010
李四 2009
王五 2009
王五 2010
王五 2011
得出B的对应年限
B
姓名 对应年限
张三 2
李四 1
王五 3
update B set 对应年限=(select (SELECT COUNT(*)
FROM A GROUP BY A. 姓名) from A where a.姓名=b.姓名)
展开
 我来答
Finish1983
2011-11-17 · TA获得超过762个赞
知道小有建树答主
回答量:1477
采纳率:100%
帮助的人:391万
展开全部
update b
set b."对应年限" =
(
select c."更新年限"
from
(
select count(1) as "更新年限",a."姓名"
from a
group by a."姓名"
) c
where c."姓名" = b."姓名"
)
where b."姓名" in
(
select c."姓名"
from
(
select count(1) as "更新年限",a."姓名"
from a
group by a."姓名"
) c
)

记得commit
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c37ffe3
2011-11-17
知道答主
回答量:9
采纳率:0%
帮助的人:4万
展开全部
在执行UPDATE 语句的时候,如果关联表更新的时候,下面几条语句
1--只能在DB2,ORACLE下执行,SQL SERVER 报"a"语法错
UPDATE MAM_SUBJECTITEM a SET a.ICON_FILE= (SELECT c.FIELD_1 FROM MCM_NAVIGATION c WHERE a.OBJ_ID=c.ID)
2--1中去除缩写名,DB2,ORACLE和 SQL SERVER 都能执行
UPDATE MAM_SUBJECTITEM SET ICON_FILE= (SELECT FIELD_1 FROM MCM_NAVIGATION WHERE OBJ_ID=ID)
3--只能在SQL SERVER 中执行,DB2,ORACLE不能执行,报"from"语法错,
UPDATE MAM_SUBJECTITEM SET ICON_FILE=c.FIELD_1
FROM MCM_NAVIGATION AS c
WHERE MAM_SUBJECTITEM.OBJ_ID=c.ID
----------------
你的问题,如果在 SQL SERVER 下可以:
update B set 对应年限=C.num
from (select count(1) as num,姓名 from A group by A.姓名) as C
where c. 姓名=B.姓名
追问
谢谢!那么请问在oracle下能实现么?
追答
oracle 可以按第一种方法写:

update B set 对应年限=(select count(1) from A where A.姓名=B.姓名 group by A.姓名)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式