2

我正在尝试根据两个条件返回警报系统的记录。第一个条件是系统中有明天日期 [Date()+1] 的预订,类型值为 B。如果该 JobNumber 的类型值(在另一条记录中)也为 A 并且结果字段的值为“ Not Approved”我们需要返回一个警报。

示例表:

JobNumber   Type    Company Date            Result
58129       B       3       22/03/2013      
58129       A       3       20/03/2013      Not Approved
58129       C       3

到目前为止,我已经能够在 VBA 中创建一个 SQL 查询来返回第一个条件的结果,并遍历结果以返回相关的 JobNumber。如何插入这些 JobNumbers 作为第二个 SQL 查询的条件,或者是否可以将所有条件组合到一个 SQL 语句中?

到目前为止我的 SQL:

strSQL1 = "SELECT I.JobNumber, I.Type, I.Company, I.Date, I.Result " & _
          "FROM tblInspection I " & _
          "WHERE (((I.Type)='B') AND ((I.Date)=Date()+1));"

strSQL2 = "SELECT I.JobNumber, I.Type, I.Company, I.Date, I.Result " & _
          "FROM tblInspection I " & _
          "WHERE (((I.Type)='A') AND ((I.Result)<>'approved'));"

任何帮助将非常感激。

4

1 回答 1

1

您可以从同一个表或另一个表中获取一个字段。如果返回多于一行,这将给出错误,但是否返回多于一行取决于您的数据。如果可能,您将需要添加另一个标准,例如日期。

SELECT I.JobNumber, I.Type, I.Company, I.Date, I.Result,
    (SELECT Result 
     FROM tblInspection q 
     WHERE q.JobNumber=i.JobNumber 
     AND Result="Not Approved" 
     AND Type="A")
As ResultA
FROM tblInspection I
WHERE I.Type='B' AND I.Date=Date()+1
于 2013-03-21T11:25:21.573 回答