|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- USE tempdb
- GO
- IF OBJECT_ID('test') IS NOT NULL
- DROP TABLE test;
- GO
- CREATE TABLE test
- (
- 科目代码 varchar(10),
- 科目名称 nvarchar(8),
- 本年借方累计 money,
- 父级代码 varchar(10)
- );
- GO
- INSERT INTO test VALUES
- ('1122.01','应收检测服务费',4985.5,'1122'),
- ('1122.01.01','[06]饮片厂',0,'1122.01'),
- ('1122.01.02','[07]黄生',1975,'1122.01'),
- ('1122.01.03','[19]孟先生',463,'1122.01')
- GO
- ----------------------------------------
- select * from test
- /*
- 科目代码 科目名称 本年借方累计 父级代码
- 1122.01 应收检测服务费 4985.50 1122
- 1122.01.01 [06]饮片厂 0.00 1122.01
- 1122.01.02 [07]黄生 1975.00 1122.01
- 1122.01.03 [19]孟先生 463.00 1122.01
- */
- ----------------------------------------
- select a.*,b.本年借方累计 as 父级本年借方累计,a.本年借方累计/b.本年借方累计 as 本年占比
- from test as a
- join test as b
- on a.父级代码=b.科目代码
- union all
- select a.*,b.本年借方累计 as 父级本年借方累计,a.本年借方累计/b.本年借方累计 as 本年占比
- from test as a
- join (select left(科目代码,4) as 科目代码,'应收帐目' as 科目名称,sum(本年借方累计) as 本年借方累计 from test group by left(科目代码,4)) as b
- on a.父级代码=b.科目代码
- ----------------------------------------
- /*
- 科目代码 科目名称 本年借方累计 父级代码 父级本年借方累计 本年占比
- 1122.01.01 [06]饮片厂 0.00 1122.01 4985.50 0.00
- 1122.01.02 [07]黄生 1975.00 1122.01 4985.50 0.3961
- 1122.01.03 [19]孟先生 463.00 1122.01 4985.50 0.0928
- 1122.01 应收检测服务费 4985.50 1122 7423.50 0.6715
- */
复制代码 |
|