日期:2014-05-18 浏览次数:20644 次
给个范例,自己写吧 --测试数据 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 主营业务收