首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

根据ID查询出一个表的多行数据,修改到另一个表的一条数据中解决方法

2012-09-13 
根据ID查询出一个表的多行数据,修改到另一个表的一条数据中假如有 A表 (aid,....)B表 (bid,aid,fieldname,

根据ID查询出一个表的多行数据,修改到另一个表的一条数据中
假如有 A表 (aid,....)
  B表 (bid,aid,fieldname,value)
  C表 (cid,name,sex,age)
B表数据
bid aid fieldname value
1 1 c.name 张三
2 1 c.sex 男
3 2 c.name 李四
... ... ... ...

C表
cid name sex age
1 王五 女 17
2 赵六 男 15
... ... ... ...
知道aid、cid。用存储过程根据B表的数据怎么修改C表的数据
比如 知道aid=1,cid=1 根据aid查出B表的数据,然后跟据CID修改C表的数据
C表cid =1 的数据结果为 
cid name sex age
1 张三 男 17

这个要怎么实现 请各位大神指教........

[解决办法]
把你要修改的数据查出来,放到临时表#t

SQL code
update set a.xx=t.xx...from 你要更新的表 a inner join #t b on a.主键=b.主键
[解决办法]
先给b 行列转换一下 然后在join 一下更新


SQL code
;WITH  t AS (    SELECT  aid , [c.name] AS [name] , [c.sex] AS [sex]    FROM    (             SELECT [aid] , [fieldname] , [value] FROM [tb]            ) a PIVOT ( MAX([value]) FOR [fieldname] IN ([c.name] , [c.sex]) ) pvt)UPDATE cSET    c.name=t.[name] , c.sex=t.[sex]FROM   c ,tWHERE  c.aid = b.aid 

热点排行