可是查下资料ACCESS没有临时表的概念作者: Henry D. Sy 时间: 2009-3-2 06:49
直接把前一个动态查询更改为生成表查询即可。作者: ACMAIN_CHM 时间: 2009-3-2 09:20
两个方案,
1。 可以考虑直接把第二个查询设计好,一般来说可以不需要动态临时表的。直接依靠查询实现。
2。 生成一个表,用完后删除。select * into tmpMytable from tableName, 用完后drop table tmpMytable
SELECT DISTINCT 学籍图.班 AS 班极, sum(语文) AS 语文成绩, sum(数学) AS 数学成绩, sum(英语) AS 英语成绩, sum(物理) AS 物理成绩, sum(政治) AS 政治成绩, sum(历史) AS 历史成绩, sum(化学) AS 化学成绩, sum(语文+数学+英语+物理+政治+历史+化学) AS 总分
FROM 初中统考表 INNER JOIN 学籍图 ON 初中统考表.学生=学籍图.id
WHERE 初中统考表.考试=4 and 学籍图.删除=0 and 学籍图.学校id=1
GROUP BY 学籍图.班;
这里的“WHERE 初中统考表.考试=4 ”每次要变的
第二次查询
SELECT 班极, ( select count(*) from 班极各科排名汇总 where 语文成绩>=a.语文成绩 ) AS 语文名次, ( select count(*) from 班极各科排名汇总 where 数学成绩>=a.数学成绩 ) AS 数学名次, ( select count(*) from 班极各科排名汇总 where 英语成绩>=a.英语成绩 ) AS 英语名次, ( select count(*) from 班极各科排名汇总 where 物理成绩>=a.物理成绩 ) AS 物理名次, ( select count(*) from 班极各科排名汇总 where 政治成绩>=a.政治成绩 ) AS 政治名次, ( select count(*) from 班极各科排名汇总 where 历史成绩>=a.历史成绩 ) AS 历史名次, ( select count(*) from 班极各科排名汇总 where 化学成绩>=a.化学成绩 ) AS 化学名次, ( select count(*) from 班极各科排名汇总 where 总分>=a.总分 ) AS 总名次, 总分 AS 总成绩
FROM 班极各科排名汇总 AS a
ORDER BY 语文成绩 DESC;
where 中的每次不变作者: wu8313 时间: 2009-3-7 07:36 本帖最后由 wu8313 于 2009-3-7 07:42 编辑
'Microsoft DAO 3.6 Object Library.
'================================
Dim qdf As DAO.QueryDef 'qdf被定义为一个查询定义对象
Dim strSQL As String
Strsql=”SELECT DISTINCT 学籍图.班 AS 班极, sum(语文) AS 语文成绩, sum(数学) AS 数学成绩, sum(英语) AS 英语成绩, sum(物理) AS 物理成绩, sum(政治) AS 政治成绩, sum(历史) AS 历史成绩, sum(化学) AS 化学成绩, sum(语文+数学+英语+物理+政治+历史+化学) AS 总分
FROM 初中统考表 INNER JOIN 学籍图 ON 初中统考表.学生=学籍图.id
WHERE 初中统考表.考试=4 and 学籍图.删除=0 and 学籍图.学校id=1
GROUP BY 学籍图.班;”
Set qdf = CurrentDb.QueryDefs("第二次查询想要的数据")
qdf.SQL = strSQL
qdf.Close
Set qdf = Nothing