stu2 Tea4 NULL NULL 2
---------------------result
学生     教师    评分x   评分y     评分z
Stu1 Tea1 5 2 3
stu1 Tea2 3 2 3
stu1 Tea3 5 5 3
stu2 Tea1 3 4 1
stu2 Tea2 3 2 4
stu2 Tea3 4 4 2

解决方案 »

  1.   

    declare @t table(学生 varchar(20),教师 varchar(20),项目 varchar(5),评分 int)
    insert into @t
    select 'Stu1','Tea1','x',5
    union select 'Stu1','Tea1','y',2
    union select 'Stu1','Tea1','z',3
    union select 'stu1','Tea2','x',     3
    union select 'stu1','Tea2','y',     2
    union select 'stu1','Tea2','z',     3
    union select 'stu1','Tea3','x',     5
    union select 'stu1','Tea3','y',     5
    union select 'stu1','Tea3','z',     3
    union select 'stu2','Tea1','x',     3
    union select 'stu2', 'Tea1','y',     4
    union select 'stu2', 'Tea1','z',     1
    union select 'stu2', 'Tea2','x',     3
    union select 'stu2', 'Tea2','y',     2
    union select 'stu2', 'Tea2','z',     4
    union select 'stu2', 'Tea3','x',     4
    union select 'stu2', 'Tea3','y',     4
    union select 'stu2', 'Tea3','z',     2select 学生,教师,sum((case 项目 when 'x' then 评分 end)) as 评分x,sum((case 项目 when 'y' then 评分 end)) as 评分y,sum((case 项目 when 'z' then 评分 end)) as 评分z from @t group by 学生,教师 order by 学生
    ---------------------result
    学生     教师    评分x   评分y     评分z
    Stu1 Tea1 5 2 3
    stu1 Tea2 3 2 3
    stu1 Tea3 5 5 3
    stu2 Tea1 3 4 1
    stu2 Tea2 3 2 4
    stu2 Tea3 4 4 2
      

  2.   

    THX very much, 但一定要用函数的么,单单sql查询语句行么?
      

  3.   

    SELECT t0.KS_ID AS [编号], t0.KS_Name AS [姓名], t1.Value AS [拟任岗位的匹配性], 
          t2.Value AS [综合分析能力], t3.Value AS [计划、组织能力], 
          t4.Value AS [人际交往与协调能力], t5.Value AS [应变能力], 
          t6.Value AS [语言表达能力], t7.Value AS [气质与仪表]
    FROM (SELECT DISTINCT KS_ID, KS_Name
            FROM VIEW_KS_AvgScore) t0,
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE PF_Name = '拟任岗位的匹配性') t1,
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE PF_Name = '综合分析能力') t2,
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE PF_Name = '计划、组织能力') t3,
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE PF_Name = '人际交往与协调能力') t4
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE PF_Name = '应变能力') t5
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE PF_Name = '语言表达能力') t6
              (SELECT KS_ID, PF_Name, Value
             FROM VIEW_KS_AvgScore
             WHERE item = '气质与仪表') t7
    WHERE t0.KS_ID *= t1.KS_ID AND t0.KS_ID *= t2.KS_ID AND t0.KS_ID *= t3.KS_ID AND 
          t0.KS_ID *= t4.KS_ID AND t0.KS_ID *= t5.KS_ID AND t0.KS_ID *= t6.KS_ID AND 
          t0.KS_ID *= t7.KS_ID谁帮我看看这句sql的错误在哪里?
    Sql server报错:Incorrect syntax near the keyword 'SELECT'.这个查询语句是想把VIEW_KS_AvgScore这个视图里的数据横排过来。
    (VIEW_KS_AvgScore)
    KS_ID   KS_Name   PF_Name               Value
    628     李明      计划、组织能力        20
    628     李明      拟任岗位的匹配性      12
    628     李明      气质与仪表            8
    628     李明      人际交往与协调能力    16
    628     李明      应变能力              14
    628     李明      语言表达能力          10
    628     李明      综合分析能力          20