我正在尝试从查询中捕获数据并将其全部保存到
Table1
中。我还创建了另一个 table2
,用于一对多关系。
设置是这样的 -
Table1
:
捕获_数量 | 捕获_ID | F3 | F4 | F5 |
---|
Table2
仅包含这些列:
捕获_ID | Cap_日期 |
---|
因此
Capture_ID
中的 table2
将被插入到 Table1
的 Capture_ID
列中,以及 SELECT
查询的其余部分。我想不出任何解决办法。
有没有办法将
INSERT
数据导入到 table2
中,同时将 INSERT
独特的 Capture_ID
到 table1
以及我编写的 SELECT
查询?
所以如果我有一个返回这个的查询
F3 | F4 | F5 |
---|---|---|
约翰 | 100 | 2024 年 1 月 1 日 |
彼得 | 200 | 2024 年 2 月 2 日 |
卢克 | 300 | 2024 年 3 月 3 日 |
当我执行SQL语句时,我希望它是这样的
表1
捕获_数量 | 捕获_ID | F3 | F4 | F5 |
---|---|---|---|---|
1 | 1 | 约翰 | 100 | 2024 年 1 月 1 日 |
2 | 1 | 彼得 | 200 | 2024 年 2 月 2 日 |
3 | 1 | 卢克 | 300 | 2024 年 3 月 3 日 |
在Table2上,我也想添加数据。
Capture_ID(唯一) | Cap_日期 |
---|---|
1 | 2024 年 12 月 19 日 |
希望你能帮助我。
我的理解是,你有一个表 2,每天包含一行,整数为
capture_id
,日期为 cap_date
,我将其称为 calendar
,并且你希望将捕获 id 添加到表 1,当前日期的 capture_id
来自表 2。
在这种情况下,我实际上会创建表 2,以便
capture_id
不是序列,而是以下结果:
YEAR(cap_date)*10000+MONTH(cap_date)*100+DAY(cap_date)
...给你这张表:
捕获_id | 上限日期 |
---|---|
20241218 | 2024-12-18 |
20241219 | 2024-12-19 |
因此,您可以使用与表 2 相同的表达式将
cap_date
: 插入到表 1 中
YEAR(DATE())*10000+MONTH(DATE())*100+DAY(DATE())
至于
capture_num
,即捕获日期内的序数捕获编号,我需要查找MS Access现在是否支持像ROW_NUMBER()
这样的窗口函数,如果我找到了,我会回到这里。