查询分析器里面没错,但是在delphi里却有错误是怎么回事

xiaoming_xing 2005-08-20 10:32:34
我写的一个sql语句,在查询分析器里面可以好好的运行,并且有结果,但是在delphi里面运行却有错误是,怎么回事啊,我的delphi语句如下:
var
ssql:string;
begin
ssql:='select t1.StudentNo from (select StudentNo, zongxuefen=';
ssql:=ssql+'isnull(sum(SchoolGrades), 0) from T_StudentScores join T_SchoolGrades';
ssql:=ssql+'on T_StudentScores.CourseID=T_SchoolGrades.CourseID where ';
ssql:=ssql+'Scores>=60 group by StudentNo) t1 join T_Students on'; ssql:=ssql+'t1.StudentNo=T_Students.StudentNo';
ssql:=ssql+'join T_ProfessionGradeInput as t2 on T_Students.StudentProfessionsID=';
ssql:=ssql+'t2.ProfessionsID where t1.zongxuefen>=t2.ProfessionGrades ';

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(ssql);
ADOQuery1.Open;
end;


其实整个的sql语句如下:select t1.StudentNo
from (select StudentNo, zongxuefen=isnull(sum(SchoolGrades), 0)
from T_StudentScores join T_SchoolGrades
on T_StudentScores.CourseID=T_SchoolGrades.CourseID
where Scores>=60
group by StudentNo) t1 join T_Students on t1.StudentNo=T_Students.StudentNo
join T_ProfessionGradeInput as t2 on T_Students.StudentProfessionsID=t2.ProfessionsID
where t1.zongxuefen>=t2.ProfessionGrades 它就是查询分数达到总学分的人的学号
我不知道是怎么回事哦,大家碰到过没,帮帮我,错误如下:
project project1.exe raised exception class EOleException with message '[Microsoft][ODBC SQL Server Driver][SQL Server] 第1行:'.'附近有语法错误。'.
说我有语法错误,但是我在sql的查询分析器里都好好的,运行也有结果啊。
...全文
46 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqhhh 2005-08-20
  • 打赏
  • 举报
回复
是,应该是空格的问题:
var
ssql:string;
begin
ssql:='select t1.StudentNo from (select StudentNo, zongxuefen=';
ssql:=ssql+' isnull(sum(SchoolGrades), 0) from T_StudentScores join T_SchoolGrades'; //少空格
ssql:=ssql+' on T_StudentScores.CourseID=T_SchoolGrades.CourseID where '; //少空格
ssql:=ssql+'Scores>=60 group by StudentNo) t1 join T_Students on'; ssql:=ssql+' t1.StudentNo=T_Students.StudentNo'; //少空格
ssql:=ssql+'join T_ProfessionGradeInput as t2 on T_Students.StudentProfessionsID=';
ssql:=ssql+'t2.ProfessionsID where t1.zongxuefen>=t2.ProfessionGrades ';

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(ssql);
ADOQuery1.Open;
end;
konhon 2005-08-20
  • 打赏
  • 举报
回复
少了空格啦, 每個前補空格試試.

ssql:=' select t1.StudentNo from (select StudentNo, zongxuefen=';
ssql:=ssql+' isnull(sum(SchoolGrades), 0) from T_StudentScores join T_SchoolGrades';
ssql:=ssql+' on T_StudentScores.CourseID=T_SchoolGrades.CourseID where ';
ssql:=ssql+' Scores>=60 group by StudentNo) t1 join T_Students on'; ssql:=ssql+' t1.StudentNo=T_Students.StudentNo';
ssql:=ssql+' join T_ProfessionGradeInput as t2 on T_Students.StudentProfessionsID=';
ssql:=ssql+' t2.ProfessionsID where t1.zongxuefen>=t2.ProfessionGrades ';

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧