日期:2014-05-19  浏览次数:20481 次

高分寻觅报表用SQL语句,欢迎钻石赏光。邹老大有空么??谢谢!!
CREATE   TABLE   [dbo].[Sw_Users](--用户表
[id]   [int]   IDENTITY(1,1)   NOT   NULL,
[username]   [varchar](20)   NULL,--用户名不重复
[pwd]   [varbinary](50)   NULL,
[name]   [varchar](10)   NULL,--姓名(部门多可能重复)
[sex]   [varchar](4)   NULL,
[dept]   [varchar](20)   NULL,--部门名称
[job]   [varchar](20)   NULL,--职位(主任,副主任,职员,分公司主任)
[Tel]   [varchar](10)   NULL,
[Fax]   [varchar](10)   NULL,
[Email]   [varchar](20)   NULL,
[lishu]   [int]   NULL   CONSTRAINT   [DF_Sw_Users_lishu]     DEFAULT   ((0)),--职员隶属于本中心主任
[pid]   [int]   NULL   CONSTRAINT   [DF_users_pid]     DEFAULT   ((0)),
[Fettle]   [varchar](4)   NULL   CONSTRAINT   [DF_Sw_Users_Fettle]     DEFAULT   ( '正常 '),
[Roles]   [varchar](10)   NULL,
  CONSTRAINT   [PK_users]   PRIMARY   KEY   CLUSTERED  
(
[id]   ASC
)WITH   (PAD_INDEX     =   OFF,   STATISTICS_NORECOMPUTE     =   OFF,   IGNORE_DUP_KEY   =   OFF,   ALLOW_ROW_LOCKS     =   ON,   ALLOW_PAGE_LOCKS     =   ON)   ON   [PRIMARY]
)   ON   [PRIMARY]

CREATE   TABLE   [dbo].[Sw_Month](--月度考核表,每个月17个分公司的17个用户给4个中心的员工评分,每个中心一个主任,每位员工也要给除了自己以外的员工(包括其它中心的员工)打分,分别写入这个表
[id]   [int]   IDENTITY(1,1)   NOT   NULL,
[name]   [nvarchar](8)   NULL,--被评分人姓名
[username]   [nchar](20)   NULL,--被评分人用户名(怕重复记录了用户名)
[dept]   [nvarchar](20)   NULL,--被评分人所在的中心名称
[assesstime]   [int]   NULL,--考核月份(如:200706)
[plans]   [float]   NULL,--考核项目1
[availability]   [float]   NULL,--考核项目2
[exercisable]   [float]   NULL,--考核项目3
[attitude]   [float]   NULL,--考核项目4
[quality]   [float]   NULL,--考核项目5
[efficiency]   [float]   NULL,--考核项目6
[explain]   [nvarchar](50)   NULL,
[communicate]   [nvarchar](500)   NULL,
[addtime]   [smalldatetime]   NULL   CONSTRAINT   [DF_Sw_Month_addtime]     DEFAULT   (getdate()),--记录添加时间
[addguy]   [nvarchar](20)   NULL,--考核人(打分的人的用户名)
[proportion]   [int]   NULL,--打分人所占的权重(随后详细解释)
  CONSTRAINT   [PK_Sw_Month]   PRIMARY   KEY   CLUSTERED  
(
[id]   DESC
)WITH   (PAD_INDEX     =   OFF,   STATISTICS_NORECOMPUTE     =   OFF,   IGNORE_DUP_KEY   =   OFF,   ALLOW_ROW_LOCKS     =   ON,   ALLOW_PAGE_LOCKS     =   ON)   ON   [PRIMARY]
)   ON   [PRIMARY]
GO

每个人的每个考核项目最终得分=(17个分公司打分的平均分)×10%+本中心主任打分×50%+(其它三个中心主任打分的平均分)×10%+(本部门员工打分的平均分)×20%+(其它中心员工打分的平均分)×10%


在加入记录前我做过判断,每个打分人相对于被打分人的权重都记入了:proportion字段,50%就记录为:50.
就是以下六个考核项目:
[plans]   [float]   NULL,--考核项目1
[availability]   [float]   NULL,--考核项目2
[exercisable]   [float]   NULL,--考核项目3
[attitude]   [float]   NULL,--考核项目4
[quality]   [float]   NULL,--考核项目5
[efficiency]   [float]   NULL,--考核项目6

打分主体:
总公司市场部下属四个中心,有四名主任
17个分公司17个分公司市场部主任
4个部门员工本身

被打分主体:
4个部门员工本身

要求一个查询列出
姓名         项目1得分         项目2得分