访问SQL以为另一个表中的每个记录创建新记录

时间:2018-03-13 20:36:26

标签: sql ms-access

数据库结构

Table: tbl_dateLog
    Field: ID (Autonumber)
    Field: dateEntry(Date Format)

Table: tbl_technician
    Field: ID (Auto number format)
    Field: fname (string format)
    Field: lname (string format)

Table: tbl_entries
    Field: ID (Auto number format)
    Field: dateID (number format)
    Field: techID (number format)
    Field: totalClaims (number format)

我一直在寻找解决方案。我相信答案很简单,但它一直让我不知所措。

我想在tbl_dateLog中使用Date()为今天的日期添加新记录。然后循环INSERT INTO查询,该查询将在tbl_entries中为每个tbl_technicians.ID添加新记录,为tbl_entries.totalClaims字段设置零,并将tbl_dateLog.ID放入tbl_entries.dateID字段。

我希望这样的事情会让我走上正轨,但我确信我需要一种JOINS来添加dateID:

INSERT INTO tbl_entries (techID,totalClaims) select ID, 0 FROM tbl_technician

我把这一切都捆在一起很麻烦,寻找答案让我更加困惑。我正在使用Access 2016。

1 个答案:

答案 0 :(得分:0)

  

我想使用Date()在今天的日期中添加新记录   tbl_dateLog。

INSERT INTO tbl_dateLog
( 
dateEntry
) 
SELECT 
Date()
;
  

然后循环一个将在其中添加新记录的INSERT INTO查询   每个tbl_technicians.ID的tbl_entries,为零放置零   tbl_entries.totalClaims字段,并将tbl_dateLog.ID放在   tbl_entries.dateID字段。

 INSERT INTO tbl_entries
(
dateID,
techID,
totalClaims
)
SELECT
(SELECT [tbl_dateLog]![ID] FROM [tbl_dateLog] where [tbl_dateLog]![dateEntry] = DATE()),
tbl_technician.ID,
0
FROM
    tbl_technician
;