我正在尝试根据两个条件返回警报系统的记录。 第一个条件是在系统中预订明天的日期[Date()+ 1],类型值为B.如果该JobNumber还具有A的类型值(在另一个记录中),则结果字段的值为“未批准“我们需要返回警报。
示例表:
JobNumber Type Company Date Result
58129 B 3 22/03/2013
58129 A 3 20/03/2013 Not Approved
58129 C 3
到目前为止,我已经能够在VBA中创建一个SQL查询,以返回第一个条件的结果,并循环遍历结果以返回相关的JobNumbers。如何将这些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'));"
非常感谢任何帮助。
答案 0 :(得分: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