Exam_KC中有如下字段: 
KMName KMID ClassID XQ SFFJ Num 
物理 wuli 3 1 1 123 
历史 lishi 3 1 0 123 
英语 yingyu 3 1 1 123 
另外一张表Score中有如下字段: 
wuli wuli(a) wuli(b) lishi lishi(a) lishi(b) yingyu yingyu(a) yingyu(b) ClassID XQ Num 
120 80 40 89 Null Null 110 78 32 3 1 123 
110 67 43 78 Null Null 89 80 9 3 1 12 
我想得到如下数据: 
wuli wuli(a) wuli(b) lishi yingyu yingyu(a) yingyu(b) ClassID XQ Num 
120 80 40 89 110 78 32 3 1 123 
110 67 43 78 89 80 9 3 1 123 
就是根据Exam_KC中的SFFJ进行筛选,如果为1,就将A卷和B卷都显示,如果为0,就只显示总分,不知道我说明白没有?
wybwml2008      2009年02月11日 18点23分34秒 说:
而且显示结果用字符串表示成: 
wuli 120(A:80,B:40),lishi:89,yingyu 110(A:78,B:32)

解决方案 »

  1.   

    1.
    case when2.
    用调价然后union all起来.
      

  2.   

    select 
      'wuli ' + cast(m.wuli as varchar) + '(A:' + cast([wuli(a)] as varchar) + ',B:' + cast([wuli(b)] as varchar) + '),' + '...其他的内容' ...
    from Score m , Exam_KC n where m.classid = n.classid and 其他条件 and n.ClassID = 1
    union all
    select 
      'wuli ' + cast(m.wuli as varchar) + '...其他的内容' ...
    from Score m , Exam_KC n where m.classid = n.classid and 其他条件 and n.ClassID = 0
      
      

  3.   

      declate @sql varchar(8000)
      select @sql=isnull(@sql+',','')+ case SFFJ when 1 then '['+KMID+'],['+ KMID +'(a)],['+ KMID +'(b)]'
        else '['+KMID+']'
        end
      from Exam_KC
      
      exec('select '+@sql+',ClassID,XQ,Num from Score'
      

  4.   

    谢谢海阔天空,能不能在帮忙下,把生成的结果改为:
    而且显示结果用字符串表示成: 
    wuli 120(A:80,B:40),lishi:89,yingyu 110(A:78,B:32)