查询中的查询

时间:2014-01-17 21:18:32

标签: sql join ms-access-2010

我有2张桌子

  1. 具有DATETIME(主要),serialNumber
  2. 的零件表
  3. 运行每个serialNumber时的状态进程表 DATETIME(主要),状态
  4. 两者都有可以正常运行的查询。 查询表1生成所选序列号的开始和结束时间 **开始时间:**

    SELECT pr08_ser.DateTime, pr08_ser.Part, pr08_ser.Serial, pr08_ser.OldSerial
    FROM pr08_ser
    WHERE (((pr08_ser.Serial) Like "*" & [Forms]![QueryForm]![Serial] & "*"));
    ** END TIME: ** 
    SELECT pr08_ser.DateTime, pr08_ser.Part, pr08_ser.Serial, pr08_ser.OldSerial
    FROM pr08_ser
    WHERE (((pr08_ser.OldSerial) Like "*" & [Forms]![QueryForm]![Serial] & "*"));
    

    查询表2生成可在表格开始和结束时间之间选择的流程状态。

    **  TIME & STATUS : ** 
    SELECT pr08.DateTime, pr08.Stamps, pr08.Reason, pr08.INCH, pr08.CONT
    FROM pr08
    WHERE (((pr08.DateTime) Between [Forms]![QueryForm]![txtStart] 
    And [Forms]![QueryForm]![txtEnd]));
    

    如何替换表1 START& pr08.DateTime BETWEEN start& amp;的结束时间结束价值?

1 个答案:

答案 0 :(得分:0)

加入pr08_ser两次,一次为开始时间,一次为结束时间。然后修改between条件以使用每个连接的日期时间。

SELECT pr08.DateTime, pr08.Stamps, pr08.Reason, pr08.INCH, pr08.CONT
FROM pr08,
     pr08_ser as start_time,
     pr08_ser as end_time
WHERE (((start_time.Serial) Like "" & [Forms]![QueryForm]![Serial] & ""))
  and (((end_time.OldSerial) Like "" & [Forms]![QueryForm]![Serial] & ""))
  and (((pr08.DateTime) Between start_time.DateTime And end_time.DateTime))
;