首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问怎么进行表连接进行动态汇总统计

2012-01-13 
请教如何进行表连接进行动态汇总统计现有两个表表1,各年度采购情况含以下字段:部门名称,物品名称,数量,年

请教如何进行表连接进行动态汇总统计
现有两个表
表1,各年度采购情况
含以下字段:部门名称,物品名称,数量,年度
APC 52006
APrinter 12006
AScanner 22006
B PC 82006
BPrinter 22006
CDC 1 2006
CPC 2 2006
......... ...

表2,物品名称,单价,年度
从表1提取物品名称、年度字段,填充本表
Insert into 表2 (名称,年度) Select Distinct 物品名称,年度 From 表1

问题:如何动态提取表1物品名称和年度填充表2,提供用户单价维护界面,将各年度各物品单价存储在表2,再对各部门各年

度采购金额进行汇总。结果表如下:
部门名称 物品名称总额年度
  合计 合计 200000 2006
  A 合计 40000 2006
  A PC30000 2006
  A Printer 5000 2006
  A Scanner 5000 2006
  B 合计 53000 2006
  B PC 48000 2006
  B Printer 5000 2006
  C 合计 15000 2006
  C DC 3000 2006
  C PC 12000 2006
谢谢指导帮忙!


[解决办法]
create table #table
(
 部门名称 varchar(50),
物品名称 varchar(50),
总额 varchar(50),
年度 varchar(50)
)
insert #table
select a.部门名称,a.物品名称,sum(a.数量×b.单价) as 总额,a.年度
from 表1 a inner join 表2 b on a.物品名称=b.物品名称
group by a.部门名称,a.物品名称,a.年度

insert #table
select a.部门名称,'合计',sum(a.数量×b.单价) as 总额,a.年度
from 表1 a inner join 表2 b on a.物品名称=b.物品名称
group by a.部门名称,a.年度

select * from #table
order by 部门名称,年度,总额 desc
[解决办法]

SQL code
select * from(  select 部门名称,物品名称,sum(数量) 总额,年度=@年度 from tb where 年度=@年度 group by 部门名称,物品名称  union all  select 部门名称,物品名称='合计',sum(数量) 总额,年度=@年度 from tb where 年度=@年度 group by 部门名称  union all  select 部门名称='合计',物品名称='合计',sum(数量) 总额,年度=@年度 from tb where 年度=@年度) torder by case 部门名称 when '合计' then 1 else 2 end , case 物品名称 when '合计' then 1 else 2 end 

热点排行