27,579
社区成员
发帖
与我相关
我的任务
分享
--> 数据库版本:
--> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
--> 测试数据:[TB]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TB]')
AND type in (N'U'))
DROP TABLE [TB]
GO
---->建表
create table [TB]([a] int,[b] varchar(6),[c] varchar(4))
insert [TB]
select 10,'管里费','09年' union all
select 13,'生产费','09年' union all
select 11,'代里费','09年' union all
select 11,'销售额','09年' union all
select 10,'管里费','10年' union all
select 13,'生产费','10年' union all
select 11,'代里费','10年' union all
select 11,'销售额','10年'
GO
--管里费+生产费+代里费)/销售额
--> 查询结果
SELECT SUM(case when b in ('管里费','生产费','代里费') then a else 0 end )/SUM(case when b = '销售额' then a else 0 end)*1.0
FROM [TB]
group by c
--> 删除表格
--DROP TABLE [TB]
--该年如果没销售额的话,除数是0,会出错
select c,1.0*sum(case when b in('管里费','生产费','代里费') then a else 0 end)/sum(case when b='销售额' then a else 0 end) as [col]
from T
group by c