sql语句或存储过程,根据表A中一个字段能查询出表B中多条记录,将表B的一个字段存入表A中的一个新字段里
sql语句或存储过程,根据表A中一个字段能查询出表B中多条记录,将表B中的一个字段存入表A中的一个新字段里。如果对应多条记录,不同字段用逗号分开。举例:表A:codena...
sql语句或存储过程,根据表A中一个字段能查询出表B中多条记录,将表B中的一个字段存入表A中的一个新字段里。如果对应多条记录,不同字段用逗号分开。
举例:表A:code name 新增
1 A null
2 B null
表B:code name1 name2
1 A 111
2 A 222
3 B 333
执行sql或存储过程后实现
表A:
code name 新增
1 A 111,222
2 B 333
以上只是举一个例子,这样的表A有3000多个,对应的表B更多。如何用sql或存储过程实现以上功能 展开
举例:表A:code name 新增
1 A null
2 B null
表B:code name1 name2
1 A 111
2 A 222
3 B 333
执行sql或存储过程后实现
表A:
code name 新增
1 A 111,222
2 B 333
以上只是举一个例子,这样的表A有3000多个,对应的表B更多。如何用sql或存储过程实现以上功能 展开
1个回答
展开全部
Select a.code,a.name,b.name2 from a left join
(Select distinct name1,
name2=(select name2+',' from b where name1=t.name1 for xml path('') )
from b as t) as b on a.name=b.name1
差不多就这个样子吧
(Select distinct name1,
name2=(select name2+',' from b where name1=t.name1 for xml path('') )
from b as t) as b on a.name=b.name1
差不多就这个样子吧
追问
不是查询,是要更新。update的。表A可能对应多个表B,具体对应多少个未知。大神,求搭救。
追答
更新也是一样啊
update a set 新增=b.name2 from a,
(Select distinct name1,
name2=(select name2+',' from b where name1=t.name1 for xml path('') )
from b as t) as b where a.name=b.name1
重点是把B表name1相同的name2合到一起,然后跟一般的两个表一样来做就行了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询