♣
因无人回,再发一贴:看看我的存贮过程哪句错了,有关临时表的。(可读性应该不差)
我把代码写下来了。老师请看:(把临时表换成普通表则正常执行)
set quoted_identifier off
go
set ansi_nulls on
go
--汇总部门数据,生成财务报表
alter proc bmhz
@yuefen char(7) = null
as
if (@yuefen is null)
begin
raiserror(没输入月份,5,5)
return
end
if len(@yuefen) <> 6
begin
raiserror(您输入月份位数不正确,应为6位,5,5)
return
end
----以下是汇总正式工的程序
delete #hzzsg
--go
insert into #hzzsg (月份,部门,误餐费,回补,独补,卫生费,月奖,电话费,小计,保险费,医保,公积金,会费,应扣,税额,扣款小计,正式工资,人数)
select 月份,部门,sum(误餐费),sum(回补),sum(独补),sum(卫生费),sum(月奖),sum(电话费),sum(小计),sum(保险费)
,sum(医保),sum(公积金),sum(会费),sum(应扣),sum(税额),sum(扣款小计),sum(实发工资),count(*) --count(*)为计算人数
from gz
where 月份 = @yuefen and len(临特标记) = 0
group by 月份,部门
--go
update #hzzsg set 工资其余 = (小计-误餐费-回补-独补-卫生费-月奖-电话费)
---下面是汇总临时工
--go
delete ##hzlsg
--go
insert into ##hzlsg (月份,部门,误餐费,回补,独补,卫生费,月奖,电话费,临时工小计,保险费,医保,公积金,会费,应扣,临时工税额,扣款小计,临扣款小计,临时工应扣,临特工资,临时工数)
select 月份,部门,sum(误餐费),sum(回补),sum(独补),sum(卫生费),sum(月奖),sum(电话费),sum(小计),sum(保险费)
,sum(医保),sum(公积金),sum(会费),sum(应扣),sum(税额),sum(扣款小计),sum(扣款小计),sum(应扣),sum(实发工资),count(*) --count(*)为计算人数
from gz
where 月份 = @yuefen and ( 临特标记 = * or 临特标记 = #)
group by 月份,部门
--如有重月的则删除
delete cw where 月份 = @yuefen
--下面导入部门工资表的月份和部门,导入财务汇总表
insert into cw (月份,部门,部门名称,部门标志,分配标志,property)
select @yuefen,部门,部门名称,部门标志,分配标志,property
from yfbmda where 月份 = @yuefen
--下面从月部门数据中导入数据
--部门应发就是部门工资计提数
update cw set 部门应发 = bm.部门应发,补贴工资 = bm.补贴工资,其他增加 = bm.增加,其他减少 = bm.减少
from cw left join bm on (cw.月份 = bm.月份 and cw.部门 = bm.部门)
--下面处理正式工
update cw
set 误餐费 = #hzzsg.误餐费,回补= #hzzsg.回补,独补 = #hzzsg.独补,卫生费 = #hzzsg.卫生费
,月奖 = #hzzsg.月奖,工资其余 = #hzzsg.工资其余,电话费 = #hzzsg.电话费,小计 = #hzzsg.小计,保险费 = #hzzsg.保险费
,医保 = #hzzsg.医保,公积金 = #hzzsg.公积金,会费 = #hzzsg.会费,应扣 = #hzzsg.应扣,税额 = #hzzsg.税额
,扣款小计 = #hzzsg.扣款小计,正式工资 = #hzzsg.正式工资,人数 = #hzzsg.人数
from cw left join #hzzsg on (cw.月份 = #hzzsg.月份 and cw.部门 = #hzzsg.部门)
where cw.月份 = @yuefen --- 临特标记 = space(2)
--下面处时临时工
update cw
set 电话费 = cw.电话费 + isnull(##hzlsg.电话费,0),临时工小计 = ##hzlsg.临时工小计,临时工税额 = ##hzlsg.临时工税额
,临扣款小计 = ##hzlsg.临扣款小计,临特工资 = ##hzlsg.临特工资,临时工数 = ##hzlsg.临时工数,临时工应扣 = ##hzlsg.临时工应扣
from cw left join ##hzlsg on (cw.月份 = ##hzlsg.月份 and cw.部门 = ##hzlsg.部门)
where cw.月份 = @yuefen
--去除高雷记录
delete cw where 月份 = @yuefen and ( 部门 = 27)
*/
--部门其他就是部门结余,二者意思完全相同
--部门标志:1为科室,2为车间
--只有车间涉及到部门结余问题
update cw set 部门其他 = (isnull(部门应发,0)-isnull(正式工资,0)-isnull(临特工资,0)-isnull(扣款小计,0)+isnull(补贴工资,0)+isnull(其他增加,0)-isnull(其他减少,0))
where 月份 = @yuefen and 部门标志=2
go
set quoted_identifier off
go
set ansi_nulls on
go
· 网友精彩回答:
- 更多问题:
- · 源程序怎样在.net 2003下运行?看到效果?
- · [求助]关于用dispose释放内存的问题
- · 配ODBC
- · DWORD nByteswritten(0);这个什么意思?
- · UDP数据包大小问题?
- · 比如我的IP是60.176.32.36,那我在IE地址栏里输入//60.176.32.36,怎么跳出来一个对话框要我输入用户名和密码,到底咋回事?
- · 找socketserver原码
- · 比较难的问题:Eclipse和重构高手进
- · 在提交了一次add后,选择列表中的中文都变成了"????????",为什么?
- · 100分求解UDP控件的奇怪问题,解决就给分。
- · 关于PB中英文翻译的文章(2天类结帖)(前天的帖子刚结帖了)
- · VC+ACCESS数据库程序的问题。
- · 请问到哪里可以下载 程序员修炼三部曲 非常感谢
- · 在线等,请问后缀是WDL的文件该用什么工具打开?
- · 网络编程中的connect函数怎么控制它的connect时间
- · 自己下了个CPU降温工具CPUCOOL,但是不大会用,来请教一下.
- · Application技术文档
- · Object技术文档 | Object
- · Request技术文档
- · Browser技术文档
- · 性能服务与管理 | 性能
- · Stream技术文档
- · erp实施
- · webservice soap
- · soap uddi
- · soap 1.2
- · jdk1.5
- · jdk环境
- · 手机芯片
- · ad芯片
- · 甲骨文公司
- · lotus数据库
- · word表格与数据库
- · 如何给word加密
- · 什么是数据库
- · 数据库管理系统
- · 数据库课程设计报告
- · 炮轰网站数据库
- · Oracle数据库实例的内存和进程结构
- · 数据库服务器
- · firefox中文版

