我正在使用Access在名为dbo_item的数据库上运行查询。它包含一个名为itm_class的列,其中包含数字1-100。它还包含名为itm_len,itm_wid,itm_hgt,pal_len,pal_wid,pal_hgt的列。根据项目类别编号,我需要它来按项目尺寸或托盘尺寸计算体积。我尝试了一些不同的东西,但我不确定如何使If语句起作用。任何帮助将不胜感激。
即。如果itm_class等于1,5,22,45,67,89,97,98,99,100,那么volume是(itm_len * itm_wid * itm_hgt),而对于所有其他itm_class数字,volume是(pal_len * pal_wid * pal_hgt)。有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用iif
条件。
IIF(itm_class in (1,5,22,45,67,89,97,98,99,100), itm_len * itm_wid * itm_hgt, pal_len * pal_wid * pal_hgt)
如果条件(第一个参数)为True,则选择第一个值(第二个参数)或者选择另一个(第三个参数)
答案 1 :(得分:0)
这取决于您是否在visual-basic中执行此语句,或者您是在数据库级别(函数/存储过程)执行此操作,还是使用查询执行此操作。最简单的方法是在查询中使用case when
语句,例如:
select case when itm_class in (1,2,3,4) then (itm_len * itm_wid * itm_hgt)
when itm_class in (5,6,7,8) then (itm_len * itm_wid)
else (itm_len * itm_wid) end volume_calculation
from some_table