sql查询符合条件的记录为多条时,如果用循环语句一条一条的取出字段值

表:字段1 字段2
A 500

B 300

B 400

B 600

A 200
比如查询字段1为B的项,循环得出字段2的值为:300,400,600
三层关系表:
本级, 下级
A B1
A B2
B1 C1

B1 C2

B2 C3
B2 C4

C1 D1

C2 D2

数据表:
本级,数量
B1 500

B2 200

C1 300

C2 400
C3 300

C4 400
D1 300

D2 400
怎样得到A下所有数量?

;with roy as
(select 字段1,字段2,row=row_number()over(partition by 字段1 order by 字段1) from Tab)
,roy2 as
(select 字段1,cast(字段2 as nvarchar(100))字段2,row from Roy where row=1
union all
select a.字段1,cast(b.字段2+','+a.字段2 as nvarchar(100)),a.row from Roy a join roy2 b on a.字段1=b.字段1 and a.row=b.row+1)

select 字段1,字段2 from roy2 a where row=(select max(row) from roy where 字段1=a.字段1) order by 字段1 option (MAXRECURSION 0)追问

再次请教,看问题补充

追答

跟刚才类似的循环就行了
--循环
;with roy as(
SELECT 本级,下级 FROM TAB where 本级='A'
union all
select tab.本级,tab.下级 from tab
inner join roy on roy.下级=tab.本级)
--得出所有所有的下级
select 下级 from roy
怎么取数不用我帮你写了吧?

追问

我的数据库是2000的,还有别的方法吗?

追答

2000只能自己写循环了

追问

循环怎样写?你的联系方式?

温馨提示:答案为网友推荐,仅供参考
相似回答