日期:2014-05-18  浏览次数:20532 次

数据报表 sql语句请求大牛帮助,谢谢。
原有数据表内容如下

公司名称 报表年份 报表月份 采购 办公用品支出 汽油费支出 日常消费  

公司一 2012 2 10 4 1 3
公司二 2012 1 3 5 4 5
公司三 2012 2 12 2 5 9
公司一 2012 3 55 7 8 1
公司二 2012 2 10 4 1 3

需要的报表格式为:
  2012 年1月 到 2012年3月 [可以选择控制选择区间]
 
  采购合计 办公用品支出合计 汽油费支出合计 日常消费合计
公司一  
公司二
公司三


不知道能否用sql或者视图的方式实现?请各位大牛帮忙

------解决方案--------------------
SQL code
select
公司名称,
sum(采购),sum(办公用品支出),sum(汽油费支出),sum(日常消费)
from 原有数据表
where 报表年份*100+报表月份>=201201
and 报表年份*100+报表月份<=201203
group by 公司名称

------解决方案--------------------
SQL code
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([公司名称] varchar(6),[报表年份] int,[报表月份] int,[采购] int,[办公用品支出] int,[汽油费支出] int,[日常消费] int)
insert [tb]
select '公司一',2012,2,10,4,1,3 union all
select '公司二',2012,1,3,5,4,5 union all
select '公司三',2012,2,12,2,5,9 union all
select '公司一',2012,3,55,7,8,1 union all
select '公司二',2012,2,10,4,1,3
go

select 
  公司名称,
  sum(采购) as 采购合计,
  sum(办公用品支出) as 办公用品支出合计,
  sum(汽油费支出) as 汽油费支出合计,
  sum(日常消费) as 日常消费合计
from
  tb
where 报表年份*100+报表月份 between 201201 and 201203
group by 公司名称

/**
公司名称   采购合计        办公用品支出合计    汽油费支出合计     日常消费合计
------ ----------- ----------- ----------- -----------
公司二    13          9           5           8
公司三    12          2           5           9
公司一    65          11          9           4

(3 行受影响)
**/