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)
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)
case when2.
用调价然后union all起来.
'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
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'
而且显示结果用字符串表示成:
wuli 120(A:80,B:40),lishi:89,yingyu 110(A:78,B:32)