Office中国论坛/Access中国论坛

标题: access sql 查询如何做成临时表 [打印本页]

作者: xiaoyaoke    时间: 2009-3-1 22:24
标题: access sql 查询如何做成临时表
晚上有人在吗?

俺有问题要问问

关于ACCESS

后一个查询要从前一个动态查询中得到数据

我想把前一个查询做成临时表

可是查下资料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

首选方案1



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: xiaoyaoke    时间: 2009-3-7 05:26
多谢楼上两位兄台相救
我的第一个查询条件每次都要变的,不能固定下来,我把SQL 语句贴上来你们看看就知道了

第一次查询

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

运行上述代码,将会产生一个名称为 "第二次查询想要的数据" 的查询,就可以作为第二次查询的依据了。

上述过程就好比你贴入sql语句到查询设计窗格,然后再保存的过程。如果贴入strsql每次不同,那就生成不同的结果替换上次保存的结果。

剩下来的问题就是,怎么让每次贴入的sql语句不同,从而达到你说的"动态"
作者: xiaoyaoke    时间: 2009-3-7 22:00
多谢wu8313 ,我要的就是这个!!!亲一个!!!哈哈
作者: xiaoyaoke    时间: 2009-3-8 21:31
wu8313  好像IIS5。5不技持dao3。6,我在做网站的!!!用IIS服务器
作者: shitou1ge    时间: 2010-11-13 08:18
学习学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3