高分求一SQL语句

zkcq2004 2012-05-29 03:57:02
表1 : A_ID
1
2
3
4
5
表2 : B_ID A_ID c_id
1 1 1
2 2 1
3 1 2
4 3 2
5 2 2
......
根据A_ID =(1,2,3...)满足表2的一个组合
注:A_ID的值为2-5个
结果如 1+2 ,1+2+3
求一个语句..分不够再加
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
十三门徒 2012-05-30
  • 打赏
  • 举报
回复
create table A( A_ID int )
create table B( B_ID int ,A_id int,c_id int)
insert B values(1,1,1)
insert B values(2,2,1)
insert B values(3,1,2)
insert B values(4,2,2)
insert B values(5,3,2)
select * from A
select * from b


with tb as (select aa=STUFF((select '+'+cast(A_id as varchar(1)) from b zz
where zz.c_id=xx.c_id for xml path('')),1,1,'') from B xx
group by c_id)
select stuff((select ',' +aa from tb for xml path('')),1,1,'')

drop table a
drop table b
十三门徒 2012-05-30
  • 打赏
  • 举报
回复
 with tb as (select aa=STUFF((select '+'+cast(A_id as varchar(1)) from b zz 
where zz.c_id=xx.c_id for xml path('')),1,1,'') from B xx
group by c_id)
select stuff((select ',' +aa from tb for xml path('')),1,1,'')
十三门徒 2012-05-30
  • 打赏
  • 举报
回复
 select c_id,aa=STUFF((select '+'+cast(A_id as varchar(1)) from b zz 
where zz.c_id=xx.c_id for xml path('')),1,1,'') from B xx
group by c_id
了解 2012-05-30
  • 打赏
  • 举报
回复
楼主:麻烦在说明白一点,A表和B表是怎样组合的?

A表数据:


B表数据:


需要的数据:


--说明需要的数据是怎样计算得到的,然后我们帮你思考解决。
尼古拉特斯拉 2012-05-29
  • 打赏
  • 举报
回复
注:A_ID的值为2-5个
结果如 1+2 ,1+2+3
这什么意思
  • 打赏
  • 举报
回复
没看明白,具体点吧

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧