首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 毕业设计又遇到问题了,高手们帮下忙,关于存储过程的 [已结贴,结贴人:luanchao88]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luanchao88
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-03-29 16:37:56 楼主
    表1:考勤统计表
    职员编号 姓名 考勤扣除 月份
    111      11    200  2008.1
    表2:绩效考核表
    职员编号 姓名 绩效奖金 月份
    111      11    200  2008.1
    表3:工资历史表
    职员编号 姓名 基本工资 房屋补贴 月份
    111      11  100    100    2008.1 
    表4:工资统计表                 
    职员编号 姓名 基本工资 房屋补贴 绩效奖金 .....应发金额 考勤扣除 实发金额
    111      11  100    100

    要求从表1,表2的考勤扣除,绩效奖金及表3的所有信息导入表4 并按月份计算出应发金额及实发金额
    以下是我写的
    CREATE procedure sf_工资统计表
    @m char(10)
    as
    delete from 工资统计表--删除已有数据
    delete from 考勤统计表
    delete from 考核表
    if exists (select * from 工资历史表 where 月份=@m)
    if exists (select * from 考勤统计表 where 月份=@m)
    if exists (select * from 考核表 where 月份=@m)
    begin --从工资历史表导入

    insert into 工资统计表
    (职员编号,姓名,月份,银行账号,基本工资,购房补贴,职务工资,通讯补贴,交通补贴)

    select 职员编号,姓名, 月份,银行账号,基本工资,购房补贴,职务工资,通讯补贴,交通补贴
    from 工资历史表
    where 月份=@m
    insert into 工资统计表
    (月份,绩效奖金)
    Select 月份,绩效奖金
    From 考核表
    Where 月份=@m
    Update 工资统计表 set 应发金额合计=基本工资+购房补贴+职务工资+绩效奖金+通讯补贴+交通补贴
    insert into 工资统计表
    (月份,考勤扣除)
    Select 月份,考勤扣除
    From 考勤统计表
    Where 月份=@m
    update 工资统计表 set 实发金额=应发金额合计-考勤扣除
    end
    GO
    语法是没错误,可是运行不出结果,各位高手看下该怎么写呢,先谢谢了~~~   
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • viva369
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-03-29 16:39:481楼 得分:0
    帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-03-29 16:43:152楼 得分:0
    好长.帮顶.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-03-29 16:46:413楼 得分:0
    这个应该就一句SQL就能搞定.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cciebill
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-03-29 16:50:024楼 得分:0
    我也頂一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luanchao88
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-03-29 16:52:435楼 得分:0
    有高手教我下怎么写吗?急呀! 先谢谢了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-03-29 17:01:066楼 得分:0
    SQL code
    create table t1(职员编号 int,姓名 varchar(20),考勤扣除 int,月份 varchar(10)) insert t1 select 111 , '11' , 200 , '2008.1' create table t2(职员编号 int,姓名 varchar(20),绩效奖金 int,月份 varchar(10)) insert t2 select 111 , '11' , 200 , '2008.1' create table t3(职员编号 int, 姓名 varchar(20),基本工资 int, 房屋补贴 int, 月份 varchar(10)) insert t3 select 111 , '11' , 100 , 100 , '2008.1' select c.职员编号,c.姓名,c.基本工资,c.房屋补贴,b.绩效奖金, (c.基本工资+c.房屋补贴+b.绩效奖金) as 应发金额, a.考勤扣除, (c.基本工资+c.房屋补贴+b.绩效奖金)-a.考勤扣除 as 实发金额 from t3 c left join t2 b on c.职员编号=b.职员编号 left join t1 a on c.职员编号=a.职员编号 drop table t1,t2,t3 /* 职员编号 姓名 基本工资 房屋补贴 绩效奖金 应发金额 考勤扣除 实发金额 ----------- -------------------- ----------- ----------- ----------- ----------- ----------- ----------- 111 11 100 100 200 400 200 200 (1 行受影响) */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-03-29 17:01:567楼 得分:0
    6楼有点错误.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-03-29 17:05:468楼 得分:35
    SQL code
    join时,加上日期.. create table t1(职员编号 int,姓名 varchar(20),考勤扣除 int,月份 varchar(10)) insert t1 select 111 , '11' , 200 , '2008.1' insert t1 select 111 , '11' , 200 , '2008.2' create table t2(职员编号 int,姓名 varchar(20),绩效奖金 int,月份 varchar(10)) insert t2 select 111 , '11' , 200 , '2008.1' insert t2 select 111 , '11' , 200 , '2008.2' create table t3(职员编号 int, 姓名 varchar(20),基本工资 int, 房屋补贴 int, 月份 varchar(10)) insert t3 select 111 , '11' , 100 , 100 , '2008.1' insert t3 select 111 , '11' , 1000 , 200 , '2008.2' select c.职员编号,c.姓名,c.基本工资,c.房屋补贴,b.绩效奖金, (c.基本工资+c.房屋补贴+b.绩效奖金) as 应发金额, a.考勤扣除, (c.基本工资+c.房屋补贴+b.绩效奖金)-a.考勤扣除 as 实发金额 from t3 c join t2 b on c.职员编号=b.职员编号 and c.月份=b.月份 join t1 a on c.职员编号=a.职员编号 and c.月份=a.月份 drop table t1,t2,t3 /* 职员编号 姓名 基本工资 房屋补贴 绩效奖金 应发金额 考勤扣除 实发金额 ----------- -------------------- ----------- ----------- ----------- ----------- ----------- ----------- 111 11 100 100 200 400 200 200 111 11 1000 200 200 1400 200 1200 (2 行受影响) */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • XSing
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-03-29 18:03:559楼 得分:15
    引用 8 楼 liangCK 的回复:
    SQL codejoin时,加上日期..createtablet1(职员编号int,姓名varchar(20),考勤扣除int,月份varchar(10))insertt1select111,'11',200,'2008.1'insertt1select111,'11',200,'2008.2'createtablet2(职员编号int,姓名varchar(20),绩效奖金int,月份varchar(10))insertt2select111,'11',200,'2008.1'insertt2select111,'11',200,'2008.2'createtablet3(职员编号int, 姓名varchar(20),基本工资int, 房屋补贴int, 月份varchar(10))insertt3…
    用外连接好点吧,你6楼的时候就用到外连接。未必人人都会迟到扣奖金。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved