一下仅做参考:
USE 实验管理数据库
IF EXISTS (SELECT name FROM sysobjects 
         WHERE name = '教工三表' AND type = 'V')
   DROP PROCEDURE 教工三表
go
 create view  教工三表
as
select
X.实验中心,
sum(case Z.实验中心 when X.实验中心 Z.房屋使用面积 else 0 end) 房屋使用面积 ,
sum(case Y.实验中心 when X.实验中心 Y.实验个数 else 0 end) [教学任务及完成量|开出实验|个数],
sum(case Y.实验中心 when X.实验中心 Y.学时数 else 0 end) [教学任务及完成量|开出实验|时数],
sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '研究生'A.实验者人数 else 0 end ) else 0 end )+sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '本科生'A.实验者人数 else 0 end ) else 0 end )+sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '专科生'A.实验者人数 else 0 end ) else 0 end )+sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '其它'A.实验者人数 else 0 end ) else 0 end )[教学任务及完成量|人时数|合计],
sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '研究生'A.实验者人数 else 0 end ) else 0 end )[教学任务及完成量|人时数|其中|研究生],
sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '本科生'A.实验者人数 else 0 end ) else 0 end )[教学任务及完成量|人时数|其中|本科生],
sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '专科生'A.实验者人数 else 0 end ) else 0 end )[教学任务及完成量|人时数|其中|专科生],
sum(case A.实验中心 when X.实验中心 (case A.实验者类别 when '其它'A.实验者人数 else 0 end ) else 0 end )[教学任务及完成量|人时数|其中|其它],
X.科研课题数  as [科研任务|承担课题(项)],
X.科研时数  as [科研任务|时数],
X.社会项目数 as  [科研任务|承担课题],
X.社会项目数 as  [社会服务|时数],
Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '教授' or '副教授' 1 else 0 end)else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '讲师'  1 else 0 end)else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '其它'  1 else 0 end)else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '否' 1 else 0 end ) else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '高级工程师' or '高级实验师' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '工程师' or '实验师' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '其他技术 人员' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '技师' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '工人' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '其它' 1 else 0 end) else 0 end) [工作人员|合计],
Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '教授' or '副教授' 1 else 0 end)else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '讲师'  1 else 0 end)else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '其它'  1 else 0 end)else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '否' 1 else 0 end ) else 0 end) else 0 end) 小计,
Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '教授' or '副教授' 1 else 0 end)else 0 end) else 0 end) [工作人员|教师|专职|教授副教授],
Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '讲师'  1 else 0 end)else 0 end) else 0 end) [工作人员|教师|专职|讲师],
Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '是' (case C.专业职务 when '其它'  1 else 0 end)else 0 end) else 0 end) [工作人员|教师|专职|其它],
Sum(case C.所在单位 when X.实验中心 (Case C.是否专职 when '否' 1 else 0 end ) else 0 end) else 0 end) [工作人员|教师|兼职],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '高级工程师' or '高级实验师' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '工程师' or '实验师' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '其他技术 人员' 1 else 0 end) else 0 end)+Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '技师' 1 else 0 end) else 0 end) [工作人员|实验技术人员|小计],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '高级工程师' or '高级实验师' 1 else 0 end) else 0 end) [工作人员|实验技术人员|高级工程师(实验师)],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '工程师' or '实验师' 1 else 0 end) else 0 end) [工作人员|实验技术人员|工程师(实验师)],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '其他技术 人员' 1 else 0 end) else 0 end) [工作人员|实验技术人员|其它技术人员],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '技师' 1 else 0 end) else 0 end) [工作人员|实验技
术人员|技师],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '工人' 1 else 0 end) else 0 end) [工作人员|工人],
Sum(case C.所在单位 when X.实验中心 (case C.专业职务 when '其它' 1 else 0 end) else 0 end) [工作人员|其它]
from
dbo.实验科研社会情况表  X ,
dbo.实验课程专业情况表  Y ,
dbo.实验室表 Z ,
dbo.实验项目基本数据表 A ,
dbo.实验中心表 B,
dbo.工作人员情况表 C
group by X.实验中心
go

解决方案 »

  1.   

    随便写一写,自己去改一改吧!假设读入的条形码保存在 @tm 中:if left(@tm,2)='37 select spbh,cast(substring(@tm,9,4) as int)*0.001/lshj [数量]
    from spkfk where spbh=substring(@tm,3,6)
      

  2.   

    W_rose的思路怎么样呢!
    完全可行!昨晚上我看了!
    第一种:
    select/update/insert  statements (处理以‘37’开头的内容) from  spkfk
    when  left(spbh,2))='37' 
      

  3.   

    也可以用
    case spbh when left(spbh,2))='37' then 处理以"37"开头的语句 else 处理以不是以"37"开头的语句;
      

  4.   

    谢谢,大家,我去试试,别特感谢flyinger(琉璃翡翠)
      

  5.   

    TO zhangaiqing(不知道编程)GG,客气了!