Delphi 使用ADO从另一个表上的查询创建新表

Delphi 使用ADO从另一个表上的查询创建新表,delphi,ms-access,delphi-7,Delphi,Ms Access,Delphi 7,我需要使用ADO查询从现有表的查询中创建一个新表。 DB是MS Access 2003。有没有一个简单的方法来重现这个 DROP TABLE IF EXISTS tmp_report; CREATE TABLE tmp_report SELECT Userid, Name, DATE(CheckTime) AS date, MIN(CheckTime) AS first_login, MAX(checktime) AS last_login, COUNT(C

我需要使用ADO查询从现有表的查询中创建一个新表。 DB是MS Access 2003。有没有一个简单的方法来重现这个

DROP TABLE IF EXISTS tmp_report;

CREATE TABLE tmp_report  
SELECT Userid, Name,  
  DATE(CheckTime) AS date,  
  MIN(CheckTime) AS first_login,  
  MAX(checktime) AS last_login,  
  COUNT(CheckTime) AS No_logins,  
  IF(COUNT(CheckTime) = 1, 'ERROR', 
  TIME_TO_SEC(TIMEDIFF(max(checktime), min(CheckTime))) AS total_sec  
FROM 
  Checkinout LEFT JOIN Userinfo USING(Userid)  
GROUP BY 
  Userid, DATE(CheckTime)  
ORDER BY
  Userid, DATE(CheckTime);

要从对现有表的查询中创建新表,可以使用
SELECT-INTO
(这将创建新表)或
INSERT-INTO-SELECT
(这将插入现有表)语句


检查页面,它有您需要的很好的示例。

将查询放入代码块-选择查询并单击文本区域上方的{}链接。我这么做是为了你,但你却回心转意!非常感谢。我找到了我所需要的。从旧的tmp_表中选择(myquery)到tmp_报告中。我想说的是,选择到不属于生产应用程序。@David-W-Fenton为什么这么说?因为它会搅动使用它的数据文件,导致不必要的膨胀。大多数情况下,以这种方式创建临时数据是一个重复的过程,你会一遍又一遍地重新创建同一个表,这毫无意义——相反,创建一个包含所有字段的空表,然后清除它并根据需要追加数据。@David-W-Fenton
重复过程
非常有意义,先生。