////一个学院里所有欠费的学生
select Distinct SName,DeptName
from(SELECT Student.SID,Student.SName,Student.SDeptCode
FROM Student,Fee
WHERE Student.SID IN (
SELECT Student.SID
FROM Student,Fee
WHERE Student.SID = Fee.SID
GROUP BY Student.SID
HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))
AND Student.SID = Fee.SID) as a,
(select DeptCode,DeptName
from config_SDept
where DeptName = '机电工程学院') as b
where a.SDeptCode=b.DeptCode
这个语句在查询分析器上没有问题。说明不是语句的问题。但是加入query就提示SELECT附近有语法错误。
这个写对不对,大家帮我看一下strSQL:='select Distinct SName,DeptName'+
'from(SELECT Student.SID,Student.SName,Student.SDeptCode'+
'FROM Student,Fee'+
'WHERE Student.SID IN'+
'(SELECT Student.SID'+
'FROM Student,Fee'+
'WHERE Student.SID = Fee.SID'+
'GROUP BY Student.SID'+
'HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))'+
'AND Student.SID = Fee.SID) as a,'+
'(select DeptCode,DeptName'+
'from config_SDept'+
'where DeptName = ''' + treetext + ''') as b'+
'where a.SDeptCode=b.DeptCode';
AQPrintN.Close;
AQPrintN.SQL.Clear;
AQPrintN.SQL.Add(strSQL);
AQPrintN.Active:=true;
AQPrintN.Open;
select Distinct SName,DeptName
from(SELECT Student.SID,Student.SName,Student.SDeptCode
FROM Student,Fee
WHERE Student.SID IN (
SELECT Student.SID
FROM Student,Fee
WHERE Student.SID = Fee.SID
GROUP BY Student.SID
HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))
AND Student.SID = Fee.SID) as a,
(select DeptCode,DeptName
from config_SDept
where DeptName = '机电工程学院') as b
where a.SDeptCode=b.DeptCode
这个语句在查询分析器上没有问题。说明不是语句的问题。但是加入query就提示SELECT附近有语法错误。
这个写对不对,大家帮我看一下strSQL:='select Distinct SName,DeptName'+
'from(SELECT Student.SID,Student.SName,Student.SDeptCode'+
'FROM Student,Fee'+
'WHERE Student.SID IN'+
'(SELECT Student.SID'+
'FROM Student,Fee'+
'WHERE Student.SID = Fee.SID'+
'GROUP BY Student.SID'+
'HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))'+
'AND Student.SID = Fee.SID) as a,'+
'(select DeptCode,DeptName'+
'from config_SDept'+
'where DeptName = ''' + treetext + ''') as b'+
'where a.SDeptCode=b.DeptCode';
AQPrintN.Close;
AQPrintN.SQL.Clear;
AQPrintN.SQL.Add(strSQL);
AQPrintN.Active:=true;
AQPrintN.Open;
' from(SELECT Student.SID,Student.SName,Student.SDeptCode'+
' FROM Student,Fee'+
' WHERE Student.SID IN'+
' (SELECT Student.SID'+
' FROM Student,Fee'+
' WHERE Student.SID = Fee.SID'+
' GROUP BY Student.SID'+
' HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))'+
' AND Student.SID = Fee.SID) as a,'+
' (select DeptCode,DeptName'+
' from config_SDept'+
' where DeptName = ''' + treetext + ''') as b'+
' where a.SDeptCode=b.DeptCode';
AQPrintN.Close;
AQPrintN.SQL.Clear;
AQPrintN.SQL.Add(strSQL);
AQPrintN.Active:=true;
AQPrintN.Open;
在每行字符串前加一空格试试
' from(SELECT Student.SID,Student.SName,Student.SDeptCode'+
' FROM Student,Fee'+
' WHERE Student.SID IN'+
' (SELECT Student.SID'+
' FROM Student,Fee'+
' WHERE Student.SID = Fee.SID'+
' GROUP BY Student.SID'+
' HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))'+
' AND Student.SID = Fee.SID) as a,'+
' (select DeptCode,DeptName'+
' from config_SDept'+
' where DeptName = ''' + treetext + ''') as b'+
' where a.SDeptCode=b.DeptCode';
AQPrintN.Close;
AQPrintN.SQL.Clear;
AQPrintN.SQL.Add(strSQL);
// AQPrintN.Active:=true;这句话多余,最好是去掉
AQPrintN.Open;
在每行字符串前加一空格试试
+#13#10+'from(SELECT Student.SID,Student.SName,Student.SDeptCode'+
+#13#10+'FROM Student,Fee'+
+#13#10+'WHERE Student.SID IN'+
+#13#10+'(SELECT Student.SID'+
+#13#10+'FROM Student,Fee'+
+#13#10+'WHERE Student.SID = Fee.SID'+
+#13#10+'GROUP BY Student.SID'+
+#13#10+'HAVING SUM(Fee.FeeDues) > SUM(Fee.FeePaid))'+
+#13#10+'AND Student.SID = Fee.SID) as a,'+
+#13#10+'(select DeptCode,DeptName'+
+#13#10+'from config_SDept'+
+#13#10+'where DeptName = ''' + treetext + ''') as b'+
+#13#10+'where a.SDeptCode=b.DeptCode';
AQPrintN.Close;
AQPrintN.SQL.Clear;
AQPrintN.SQL.Add(strSQL);
AQPrintN.Active:=true;
AQPrintN.Open;