问题描述
我的数据库中有三张表:学生表a、试卷表b和成绩表c。其中表a有字段姓名xm。表b有字段试卷标识sjbs。表c有字段姓名xm,试卷标识sjbs和成绩cj。但表c中可能只包含一部分学生的成绩。现在要用datagrid显示表a全部记录的xm字段,并另加一列z。当对应的xm包含在表c中时z为表c中对应的cj,否则为“无”。不知道这样的SQL语句该怎么写,特此请教。谢谢!
解决方案
解决方案二:
selecta.xm,(casewhenc.xmisnotnullthenc.cjwhenc.xmisnullthen'无'end)zfroma,cwherea.xm=c.xm(+)
解决方案三:
谢谢!我试试。
解决方案四:
在SQL查询分析器中试验时,显示(+)部分有语法错误。还请继续赐教。谢谢!
解决方案五:
selecta.xm,isnull(c.cj,'')ascjfromaleftjoincona.xm=c.xm这样可以吗?
解决方案六:
?
解决方案七:
谢谢!这样确实可以。但新的问题是,如果需要关联3张以上的表时(如显示学生指定试卷的成绩),不知道如何使用"join"。
时间: 2024-09-20 13:54:42