当表B的日期>表A的日期时,表B的更新字段

时间:2014-05-20 09:59:57

标签: sql ms-access ms-access-2013

我在MS Access 2013中有两个表。

有一些条件:

  
      
  1. 部分只能在维修后撤回。
  2.   
  3. 一段时间后,部分将再次返回维修。
  4.   
  5. 部分可以在同一天进行维修,撤回,退回,维修,撤回,退回。
  6.   

服务表:

(ID是主键)

ID PART_ID SERVICE_DATE
1   A0001   01/05/2014
2   A0002   02/05/2014
3   A0003   03/05/2014
4   A0004   04/05/2014
5   A0005   05/05/2014
6   A0001   06/05/2014
7   A0002   07/05/2014

提款表:

(ID是主键)

ID PART_ID DRAW_DATE
1   A0001  02/05/2014
2   A0002  03/05/2014
3   A0003  04/05/2014
4   A0001  07/05/2014
5   A0002  08/05/2014

我使用以下代码更新了提取表中的 SERVICE_ID

UPDATE WITHDRAW SET SERVICE_ID = DLookup("ID","SERVICE","PART_ID ='" & PART_ID & "' AND SERVICE_DATE =#" & DMax("SERVICE_DATE","SERVICE","PART_ID ='" & PART_ID & "' AND SERVICE_DATE <=#" & DRAW_DATE & "#") & "#");  

Gord Thompson 的帮助下,其中 SERVICE_ID 服务 ID >

如果提款日期至少比服务日期晚>,则效果很好,如下所示:

服务表:

ID PART_ID SERVICE_DATE
1   A0001   01/05/2014
2   A0002   02/05/2014
3   A0003   03/05/2014
4   A0004   04/05/2014
5   A0005   05/05/2014
6   A0001   06/05/2014
7   A0002   07/05/2014

提款表:

ID PART_ID DRAW_DATE  SERVICE_ID
1   A0001  02/05/2014     1
2   A0002  03/05/2014     2
3   A0003  04/05/2014     3
4   A0001  07/05/2014     6
5   A0002  08/05/2014     7

但是,当该日期类似时,它无法正确捕获 SERVICE_ID

情况1:

服务表:

ID PART_ID SERVICE_DATE
1   A0001   01/05/2014
2   A0002   01/05/2014
3   A0003   01/05/2014
4   A0004   01/05/2014
5   A0005   01/05/2014
6   A0001   01/05/2014
7   A0002   01/05/2014

提款表:

ID PART_ID DRAW_DATE  SERVICE_ID
1   A0001  01/05/2014     1
2   A0002  01/05/2014     2
3   A0003  01/05/2014     3
4   A0001  01/05/2014     1       (problem)
5   A0002  01/05/2014     2       (problem)

情况2:

服务表:

ID PART_ID SERVICE_DATE
1   A0001   01/05/2014
2   A0002   01/05/2014
3   A0003   01/05/2014
4   A0004   01/05/2014
5   A0005   01/05/2014
6   A0001   20/05/2014
7   A0002   25/05/2014

提款表:

ID PART_ID DRAW_DATE  SERVICE_ID
1   A0001  20/05/2014     6       (problem)
2   A0002  23/05/2014     2
3   A0003  24/05/2014     3
4   A0001  20/09/2014     6
5   A0002  08/05/2015     7

我对SQL知之甚少。我不知道我必须添加什么条件才能得到我想要的结果。有人可以帮忙吗?谢谢!

0 个答案:

没有答案