如果支持Case,可以这样写Select 班级, sum((case when 总分>400 then 1 else 0)*总分), Count(总分)from "StudentScore.Db" WHERE 年级 = '初一年级'and 总分>400 GROUP BY 班级二是,你最好再用一个query来进行操作。
to mingyeh(忧郁),你这种方法是不行的,你统计的总分是全年级的总分,更何况编译都有错误 to thisisxutao(Probational 1.0) 现在就是不能用两个QUERY
SELECT 班级, SUM( 总分 ), COUNT( 总分 ) FROM "studentscore.DB" HAVING 年级 = '初一年级'and sum(总分)>400 GROUP BY 班级
query1.close query1.SQL.clear; query1.sQL.add('SELECT 班级, SUM( 总分 ), COUNT( 总分 ) FROM "studentscore.DB" WHERE 年级 = '''+'初一年级'+''' GROUP BY 班级') query1.sQL.add(SELECT COUNT( 总分 ) FROM "studentscore.DB" WHERE 年级 = '''+'初一年级'+''' and 总分>400 GROUP BY 班级 ) query1.open;
SELECT 班级, SUM( 总分 ), COUNT( 总分 ) FROM "studentscore.DB" WHERE 年级 = '初一年级' GROUP BY 班级 having SUM( 总分 )>400
SELECT a.班级,a.总分,a.总人数,b.大于400人数 From (SELECT 班级, SUM( 总分 ) AS 总分 , COUNT( 总分 ) AS 总人数 FROM "studentscore.DB" WHERE 年级 = '初一年级' GROUP BY 班级 ) AS a , (SELECT COUNT(*) AS 大于400人数 FROM "studentscore.DB" WHERE 年级 = '初一年级' AND 总分>400) AS b 语法可能与你用的库有出入 你不妨这样试试
SELECT 班级, SUM( 总分 ), COUNT( 总分 ) FROM "studentscore.DB" WHERE 年级 = '初一年级' GROUP BY 班级 having sum(总分)>400 建议看看SQL21速成一书。或者看看delphi的Local SQL参考。
WHERE 年级 = '初一年级'and 总分>400
GROUP BY 班级二是,你最好再用一个query来进行操作。
现在就是不能用两个QUERY
FROM "studentscore.DB"
HAVING 年级 = '初一年级'and sum(总分)>400
GROUP BY 班级
query1.SQL.clear;
query1.sQL.add('SELECT 班级, SUM( 总分 ), COUNT( 总分 )
FROM "studentscore.DB"
WHERE 年级 = '''+'初一年级'+'''
GROUP BY 班级')
query1.sQL.add(SELECT COUNT( 总分 )
FROM "studentscore.DB"
WHERE 年级 = '''+'初一年级'+''' and 总分>400
GROUP BY 班级
)
query1.open;
FROM "studentscore.DB"
WHERE 年级 = '初一年级'
GROUP BY 班级 having SUM( 总分 )>400
(SELECT 班级, SUM( 总分 ) AS 总分 , COUNT( 总分 ) AS 总人数
FROM "studentscore.DB"
WHERE 年级 = '初一年级'
GROUP BY 班级 ) AS a ,
(SELECT COUNT(*) AS 大于400人数
FROM "studentscore.DB"
WHERE 年级 = '初一年级'
AND 总分>400) AS b 语法可能与你用的库有出入 你不妨这样试试
FROM "studentscore.DB"
WHERE 年级 = '初一年级'
GROUP BY 班级
having sum(总分)>400
建议看看SQL21速成一书。或者看看delphi的Local SQL参考。