我这里有一个查询,通过左连接基于查找表更新某些字段。
UPDATE finalTbl
LEFT JOIN LookupTbl ON (finalTbl.Product = LookupTbl.Product) AND (finalTbl.Detail1 = LookupTbl.[Product Detail])
SET finalTbl.Description = LookupTbl.Description, finalTbl.Category = LookupTbl.Category;
现在,finalTbl
中有另一个字段,我想在此过程中加入Detail2
)。
这个想法将是......
如果finalTbl.Detail2 IS NULL
则LEFT JOIN LookupTbl ON (finalTbl.Product = LookupTbl.Product) AND (finalTbl.Detail1 = LookupTbl.[Product Detail])
其他
LEFT JOIN LookupTbl ON (finalTbl.Detail2 = LookupTbl.[Product Detail])
Detail2
相比,Product
无需依赖Detail1
字段
我尝试通过Design View创建它但失败了。似乎我迷失了,需要一些关于它的光。感谢您的投入!
答案 0 :(得分:1)
我还没有对此进行测试,但我经常在可能缺少日期的联接中使用NZ
。
例如:Table0.ShiftDate<=NZ(Table1.EndDate,#01/01/9999#)
尝试:
UPDATE finalTbl LEFT JOIN LookupTbl ON (finalTbl.Product = LookupTbl.Product) AND
(NZ(finalTbl.Detail1,finalTbl.Detail2) = LookupTbl.[Product Detail])
SET finalTbl.Description = LookupTbl.Description
, finalTbl.Category = LookupTbl.Category;
修改强>
经过快速测试后,它似乎可以使用下面的SQL。
SELECT *
FROM finalTbl LEFT JOIN LookupTbl ON (finalTbl.Product = LookupTbl.Product) AND
(NZ(finalTbl.Detail1,finalTbl.Detail2) = LookupTbl.[Product Detail])
再次编辑:
但我没有考虑到这一点。
与Detail1
相比,Detail2doesn不需要依赖Product字段