我在这里阅读了一些关于使用Switch和Iff语句在Access中填写基于条件的值的问答。 我对Access比较陌生,所以我会非常感激你的帮助。
我有2个表,Owner
和Pet
。
表Owner
包含以下字段:
OwnerID , OwnerName , PetType , PetCommonName , OwnsAGarden
表Pet
包含以下字段:
Species , CommonName , NeedsAGarden
表宠物将宠物动物的科学名称映射到通用的,通常已知的名称。 表所有者具有表中存在的OwnerID,OwnerName,PetCommonName和OwnsAGarden的值。需要根据Table Pet中的某些条件更新列PetType。
我想要类似的东西:
如果Pet.CommonName =' Dog'和Pet.NeedsAGarden ='是',然后Owner.PetType ='外出的狗', 否则如果Pet.CommonName =' Dog' AND Pet.NeedsAGarden ='否',然后Owner.PetType ='室内狗', 否则如果Pet.CommonName = Owner.PetCommonName,那么Owner.PetType =来自Pet.Species的相应值。
我尝试过使用switch语句。前两个条件得到评估,表格得到了完美的更新。但是,第三个条件似乎没有给出预期的结果。
答案 0 :(得分:0)
经过大量的修补工作后,我设法使用IIF声明解决了我的问题。
我将代码更改为
Update Pet INNER JOIN Owner
ON Pet.CommonName = Owner.PetCommonName
SET Owner.PetType = IIF(Pet.PetCommonName = 'Dog', IIF(Pet.NeedsAGarden = 'Yes', 'Outgoing dog', 'Indoor Dog'), Pet.Species);

它正在工作..感谢所有早期帖子的人帮我想出这个......