MS Access:有条件地填充列值

时间:2014-10-16 15:35:58

标签: sql ms-access

我在这里阅读了一些关于使用Switch和Iff语句在Access中填写基于条件的值的问答。 我对Access比较陌生,所以我会非常感激你的帮助。

我有2个表,OwnerPet

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语句。前两个条件得到评估,表格得到了完美的更新。但是,第三个条件似乎没有给出预期的结果。

1 个答案:

答案 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);




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