如何生成这样的结果:
数据表:tab1
ID, Parent_ID, Ass_no, F_no
1 123 FA0086 null
2 123 null D00123
3 123 001988 null
4 123 FA0090 null
5 123 null D01897
6 120 FA0086 null
7 120 null D00125
8 120 20201 null
9 120 FA0090 null
10 120 null D01899
说明:ID是流水号,自动生成。
Parent_ID是主板的代号
Ass_no是组件的组合号,一个组合号对应一个F_no或者不对应有F_no,如果该组件有编号,在数据库表中其编号一定紧跟在后面一行。
F_no是组件的编号,不重复。
现在要生成这样的结果:(请问如何写这样的SQL语句,分不够再加,谢啦)
Parent_ID, Ass_no, F_no
123 FA0086 D00123
123 001988 null
123 FA0090 D01897
120 FA0086 D00125
120 20201 null
120 FA0090 D01899
------解决方案--------------------select
t.Parent_ID,t.Ass_no,(select top 1 F_no from tab1 where ID> t.ID and Parent_ID=t.Parent_ID order by ID)
from
tab1 t
where
t.Ass_no is not null
------解决方案--------------------declare @tab1 table(ID int,Parent_ID int,Ass_no varchar(10),F_no varchar(10))
insert into @tab1 select 1 ,123, 'FA0086 ', null
insert into @tab1 select 2 ,123, null , 'D00123 '
insert into @tab1 select 3 ,123, '001988 ', null
insert into @tab1 select 4 ,123, 'FA0090 ', null
insert into @tab1 select 5 ,123,null , 'D01897 '
insert into @tab1 select 6 ,120, 'FA0086 ', null
insert into @tab1 select 7 ,120,null , 'D00125 '
insert into @tab1 select 8 ,120, '