一对多,返回一条统计数据
苛学加 2015-08-13 02:10:04 --时单位临表
declare @DW_A table
(
DWBM nvarchar(50),--单位编码
DWMC nvarchar(50) --单位名称
)
--时单位临表
declare @DW_B table
(
DWBM nvarchar(50),--单位编码
DWMC nvarchar(50) --单位名称
)
insert into @DW_A(DWBM,DWMC) values ('100','重庆市')
insert into @DW_A(DWBM,DWMC) values ('100100',' 渝中区')
insert into @DW_A(DWBM,DWMC) values ('100200',' 南岸区')
insert into @DW_A(DWBM,DWMC) values ('100200100',' 南坪镇')
insert into @DW_A(DWBM,DWMC) values ('100','天津市')
--将排好序的单位导入
;with cte as
(
select DWBM,DWMC from @DW_A
)
insert into @DW_B(DWBM,DWMC)
select DWBM,DWMC from cte
ORDER BY DWBM
--单位的树形结构:
select DWBM,DWMC from @DW_B
--临时道路表
declare @DL table
(
DWBM nvarchar(50),--单位编码
DLMC nvarchar(50),--道路名称
DLCD int, --道路长度
WXQL int --桥梁数量
)
insert into @DL(DWBM,DLMC,DLCD,WXQL) values ('100200100','一路','1','2')
insert into @DL(DWBM,DLMC,DLCD,WXQL) values ('100200100','二路','2','3')
insert into @DL(DWBM,DLMC,DLCD,WXQL) values ('100200','大路','3','4')
insert into @DL(DWBM,DLMC,DLCD,WXQL) values ('100100','马路','4','5')
select DWBM,DLMC,DLCD,WXQL from @DL
--现在的需求是返回一张统计表:
declare @TJ table
(
DWBM nvarchar(50),--单位编码
DWMC nvarchar(50),--单位名称
DLCD int, --道路长度
WXQL int --桥梁数量
)
数据如下:
--单位 道路长度 桥梁数量
--重庆市 10 14
-- 渝中区 4 5
-- 南岸区 6 9
-- 南坪镇 3 4
--我想到的方法是通过游标遍历单位表@DW_B , 然后通过单位编码去查,但是效率太低。求其他的思路解决。