使用另一个表中的值插入/更新表以获取两个字段

时间:2016-03-16 16:32:04

标签: sql ms-access

我有一个包含多个字段的表格。其中两个有日期键。我需要在使用日历日期更新的表中插入两个新字段。这两个列的日历日期位于一个表中,主日期键和相应的日历日期位于单独的字段中。

所以例如; 单行在DATE KEY EFFECTIVE中具有14367作为日期键,在DATE KEY EXPIRATION中具有18434作为日期键。我希望这些字段根据主日期密钥表中相应的日历日期填充到14367和18434,在两个独立的列表1中。

表1

Date Master Key| Calendar Date
    -----------------------------
 1095829       | Jan 1
 1093895       | Jan 15
 1095289       | Feb 1
 1093910       | Feb 15
 1840294       | Mar 1
 1838949       | Mar 15
 1835019       | Apr 1
 1840193       | Apr 15

表2

static void P1(int n ){
   for (int i=1; i<=n; i++) {
      Procedure();
}

这可以不将多个查询链接在一起吗?

1 个答案:

答案 0 :(得分:0)

有趣

我从来没有在Access

中更新包含2个其他表的表

更新包含1个其他表的1个表是常见的。因此,您可以通过2个不同的查询实现您想要的目标:

生效日期:

UPDATE Table1 T
INNER JOIN Table2 Eff ON T.[Effective Date]=Eff.[Date Master Key]
SET T1.[Eff Calendar Date]=Eff.[Calendar Date]
WHERE T.id = 1

到期日期:

UPDATE Table1 T
INNER JOIN Table2 Expi ON T.[Expiration Date]=Expi.[Date Master Key]
SET T1.[Exp Calendar Date]=Expi.[Calendar Date]
WHERE T.id = 1

但我想知道Access是否会在单个查询中接受这两个更新,因此您可以先测试它并告诉它是否有效:

UPDATE ((Table1 T
INNER JOIN Table2 Eff ON T.[Effective Date]=Eff.[Date Master Key])
INNER JOIN Table2 Expi ON T.[Expiration Date]=Expi.[Date Master Key])
SET T1.[Eff Calendar Date]=Eff.[Calendar Date], T1.[Exp Calendar Date]=Expi.[Calendar Date]
WHERE T.id = 1