日期:2014-05-18 浏览次数:20750 次
给个范例,自己写吧
--测试数据
DECLARE @a TABLE(No varchar(10),Name varchar(10))
INSERT @a SELECT '101'  ,'现金'
UNION ALL SELECT '102'  ,'银行存款'
UNION ALL SELECT '10201','工行'
UNION ALL SELECT '10202','建行'
UNION ALL SELECT '10203','农行'
DECLARE @b TABLE(No varchar(10),[Money] money )
INSERT @b SELECT '101'  ,100
UNION ALL SELECT '10201',20
UNION ALL SELECT '10202',120
--逐级汇总查询
SELECT a.No,a.Name,
    [Money]=ISNULL(SUM([Money]),0)
FROM @a a
    LEFT JOIN @b b ON b.No LIKE a.No+'%'
GROUP BY a.No,a.Name
ORDER BY a.No
/*--结果
No         Name        Money 
---------------- ----------------- --------------------- 
101        现金         100.0000
102        银行存款     140.0000
10201      工行         20.0000
10202      建行         120.0000
10203      农行         .0000
--*/
------解决方案--------------------
if object_id('凭证表') is not null 
 drop table 凭证表 
 go 
 create table 凭证表([年] varchar(10),[月] varchar(10),[科目ID] varchar(10),[借方] int,[贷方] int) 
 insert 凭证表 select '2009','03',510100101,800,0 
 insert 凭证表 select '2009','03',510100102,600,0 
 insert 凭证表 select '2009','03',540100101,700,0 
 insert 凭证表 select '2009','03',540100102,700,0 
 go 
 if object_id('科目表') is not null 
 drop table 科目表 
 go 
 create table 科目表([ID] varchar(10),[名称] varchar(20),[级数] int) 
 insert 科目表 select '5101','主营业务收入',1 
 insert 科目表 select '5101001','主营业务收入-1',2 
 insert 科目表 select '5101002','主营业务收入-2',2 
 insert 科目表 select '510100101','主营业务收入-1-1',3 
 insert 科目表 select '510100201','主营业务收入-2-1',3 
 insert 科目表 select '510100102','主营业务收入-1-2',3 
 insert 科目表 select '510100202','主营业务收入-2-2',3 
 insert 科目表 select '5401','A主营业务收入',1 
 insert 科目表 select '5401001','A主营业务收入-1',2 
 insert 科目表 select '5401002','A主营业务收入-2',2 
 insert 科目表 select '540100101','A主营业务收入-1-1',3 
 insert 科目表 select '540100201','A主营业务收入-2-1',3 
 insert 科目表 select '540100102','A主营业务收入-1-2',3 
 insert 科目表 select '540100202','A主营业务收入-2-2',3 
 go 
 -->全部显示 
 SELECT [年],[月],ID,[名称], 
   [借方]=ISNULL(SUM([借方]),0), 
   [贷方]=ISNULL(SUM([贷方]),0)   
 FROM 凭证表 a 
   LEFT JOIN 科目表 b ON [科目ID] LIKE b.ID+'%' 
 GROUP BY [年],[月],ID,[名称] 
 ORDER BY ID 
 /* 
 年      月      ID     名称           借方      贷方 
 ---------- ---------- ---------- -------------------- ----------- ----------- 
 2009     03     5101     主营业务收入         1400    0 
 2009     03     5101001  主营业务收入-1       1400    0 
 2009     03     510100101  主营业务收