SQL小计(100分)

  • 主题发起人 主题发起人 Martin0528
  • 开始时间 开始时间
M

Martin0528

Unregistered / Unconfirmed
GUEST, unregistred user!
部门 项目 预算额 备注
Deptno item prep memo
人事部 福利费 1000 聚餐
人事部 办公费 2000 电脑购置
人事小计 3000
工程部 交通费 1500 聚餐
工程部 培训费 2500 电脑购置
工程小计 4000
。。。
用SQL如何实现,急!!
 
select deptno,sum(prep) from t group by deptno
 
declare cusor aa for select deptno,item,prep,memo from table group by deptno
declare @dd varchar(20)
。。。。。。。
用游标实现吧
 
人事部 福利费 1000 聚餐
人事部 办公费 2000 电脑购置
人事小计 3000
工程部 交通费 1500 聚餐
工程部 培训费 2500 电脑购置
工程小计 4000
这是SQL运行后的结果。。。
 
(select Deptno,item,prep,memo from table
union
select Deptno+'小计',sum(prep) from table group by Deptno)
order by Deptno
 
其中有上10个查询条件的,如果是游标传就麻烦了
 
迷途的羔羊你的语法有错吧
 
可写一存储过程,在里面建一临时表
Create Table #temp(
SortField int identity(1, 1) not null,
部门 varchar(20),
项目 varchar(50),
预算额 numeric(18,6),
备注 varchar(100)
)
insert into #temp(部门,预算额)
select '小计',sum(预算额)
from Table
select * from #temp order by 部门,SortField
 
你试过我的句子吗就说有错误!
呵呵~!
 
select * from sumdep where deptNo = '人事部'
union
select '人事小计', '', SUM(PREP), '' FROM sumdep where deptNo = '人事部'
UNION
select * from sumdep where deptNo = '工程部'
union
select '工程小计', '', SUM(PREP), '' FROM sumdep where deptNo = '工程部'
UNION
select * from sumdep where deptNo = 'xxxxxxx'
union
select 'xxx小计', '', SUM(PREP), '' FROM sumdep where deptNo = 'xxxxx'
有多少个部门就写多少个这样的语句就可以了
 
select Deptno,item,prep,memo
from yourTable
order by deptno,item,memo
compute sum(prep) by Dept_no,Item,Memo
 
把迷途的羔羊修改一下就可以了
select Deptno,item,prep,memo from sumdep
union
select Deptno+'小计', '', sum(prep), '' from sumdep group by Deptno
 
谢谢提醒!
刚才随便写的没调试!
 
多谢各位,问题解决了[:)]
 
多谢各位,问题解决了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部