父表a:
编号子表b:
编号 货物名称 件数 毛重 体积
父表10条记录。子表35条记录。现在要求结果是父表的所有记录,且每条记录都要显示对应子表的字段。
常规是:select a.编号.b.货物名称,件数,毛重,体积 from a left join b on b.编号 = a.编号但这样出来的结果有35条记录。因为子表有35条记录。我现在要求出来的结果是父表的记录即10条记录。实现的方法就是把每个编号对应的子表内容分行合并在一起保存在一条记录中。
这个函数怎么写??
下图是需要的结果3条记录。:
编号子表b:
编号 货物名称 件数 毛重 体积
父表10条记录。子表35条记录。现在要求结果是父表的所有记录,且每条记录都要显示对应子表的字段。
常规是:select a.编号.b.货物名称,件数,毛重,体积 from a left join b on b.编号 = a.编号但这样出来的结果有35条记录。因为子表有35条记录。我现在要求出来的结果是父表的记录即10条记录。实现的方法就是把每个编号对应的子表内容分行合并在一起保存在一条记录中。
这个函数怎么写??
下图是需要的结果3条记录。:
from a left join b on b.编号 = a.编号
group by a.编号,b.货物名称
insert T select 1
insert T select 2
insert T select 3go
create table T2(ID int,num int)
insert T2 select 1,2
insert T2 select 1,3
insert T2 select 2,4
insert T2 select 2,5
select
t.ID,
num=isnull(rtrim(t2.num),''),
row=identity(int,1,1)
into #
from
t
left join
t2 on t.ID=t2.ID
select
[ID]=case when row=(select min(row) from # where ID=a.ID) then rtrim(ID) else '' end,
num
from
# aID num
------------ ------------
1 2
3
2 4
5
3 (所影响的行数为 5 行)
你说的那种应该是在页面上来实现的
SQL中要把多个记录合并为一条可以,但想要把每个子记录都显示为一行比较困难完全应该是页面上控件来实现