先建个视图v_o
然后:select * from V_o where 员工号='00001'

解决方案 »

  1.   

    视图可以这样建:
    -测试数据:
    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.职位号你在查询分析器里边试试,我测试过了,没有问题!
      

  2.   

    恩谢谢拉! 我刚才试过了可以成功 谢谢你哇!! 现在正在研究之中!呵呵~~
    还有个问题 麻烦大家看下~~!
    是个工资表的
    员工号 月份 年份 部门号  应发金额
    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月字段值变成 要查询表的列~~
      

  3.   

    结帐了,还是帖出来吧,不知道你还能不能看到
    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)