请教一下这个存储过程问题 大家帮忙来看看哇!!!

kuuuu 2005-01-05 08:09:03
有张人员调动表
调动号 员工号 调前部门号 调后部门号 调前职位号 调后职位号
001 00001 0001 0003 0002 0005
还有有部门表 职位表 员工表

请问怎样用存储过程实现
当我输入 员工号 就生成这张表

调动号 员工号 员工姓名 调前部门名 调后部门名 调前职位名 调后职位名
001 00001 aaaa cccc xxxx ccccc xxcsss
谢谢大家了 说下思路也可以哇 急!!!!
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuuuu 2005-01-06
  • 打赏
  • 举报
回复
在看呢 我自己也搞了 种方法 看来方法还很多哇 哈哈~~!
xq02 2005-01-06
  • 打赏
  • 举报
回复
结帐了,还是帖出来吧,不知道你还能不能看到
create table T_wage(EmployeeNo varchar(20),MonthNo varchar(20),YearNo varchar(20),DeptNo varchar(20),WageCount int)

insert T_wage
select '001','6','2004','001',2000
union all
select '001','7','2004','001',1800
union all
select '003','6','2004','001',1600
union all
select '004','8','2004','002',2100
--然后用动态sql语句
declare @sql varchar(2000)
set @sql='select DeptNo'
select @sql=@sql+',isnull(sum(case when MonthNo='''+MonthNo+''' then WageCount end),0) ['+MonthNo+']'
from (select distinct MonthNo from T_wage) as a
select @sql=@sql+',sum(WageCount) as totalCount from T_wage group by DeptNo'
exec (@sql)
kuuuu 2005-01-05
  • 打赏
  • 举报
回复
恩谢谢啦 我去看看!!!
xq02 2005-01-05
  • 打赏
  • 举报
回复
这个应该是个交叉表的问题吧,你搜一下吧,有不少这样的存储过程!
kuuuu 2005-01-05
  • 打赏
  • 举报
回复
恩谢谢拉! 我刚才试过了可以成功 谢谢你哇!! 现在正在研究之中!呵呵~~
还有个问题 麻烦大家看下~~!
是个工资表的
员工号 月份 年份 部门号 应发金额
001 6 2004 001 2000
001 7 2004 001 1800
003 6 2004 001 1600
004 8 2004 002 2100
请问这个怎么用查询语句生成报表
部门名 1月 2月 3月 4月.....12月 小计
aaa 8000 4000 6000 5000 12000 80000

谢谢麻烦大家也看看哦 !我现在还搞不懂 怎么办那个6月 7月字段值变成 要查询表的列~~

xq02 2005-01-05
  • 打赏
  • 举报
回复
视图可以这样建:
-测试数据:
create table 人员调动表(调动号 varchar(20),员工号 varchar(20),调前部门号 varchar(20),调后部门号 varchar(20),调前职位号 varchar(20),调后职位号 varchar(20))

insert 人员调动表
select '001','00001','0001','0003','0002','0005'

create table 部门表(部门号 varchar(20),部门名 varchar(20))

insert 部门表
select '0001','aaaa'
union all
select '0003','bbbb'

create table 员工表(员工号 varchar(20),员工名 varchar(20))

insert 员工表
select '00001','aa'
union all
select '00002','bb'

create table 职位表(职位号 varchar(20),职位名 varchar(20))

insert 职位表
select '0002','aaa'
union all
select '0005','bbb'
-创建视图
create view vw_test as
select a.调动号,a.员工号,b.员工名,c.部门名 as 调前部门名,d.部门名 as 调后部门名,e.职位名 as 调前职位名,f.职位名 as 调后职位名
from 人员调动表 a,员工表 b,部门表 c,部门表 d,职位表 e,职位表 f
where a.员工号=b.员工号 and a.调前部门号=c.部门号 and a.调后部门号=d.部门号 and a.调前职位号=e.职位号 and a.调后职位号=f.职位号

你在查询分析器里边试试,我测试过了,没有问题!
kuuuu 2005-01-05
  • 打赏
  • 举报
回复
视图我也想了
怎么建呀?想了半天还是还没写出来哦 能帮忙写下吗?谢谢啦!!!
631799 2005-01-05
  • 打赏
  • 举报
回复
先建个视图v_o
然后:

select * from V_o where 员工号='00001'

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧