Ms access 调试嵌套if语句以获得价格折扣偏差

Ms access 调试嵌套if语句以获得价格折扣偏差,ms-access,Ms Access,我有一个嵌套的if语句,用于识别低于适当单价出售的零件ID,用于给定的价格分割数量(qb=数量分割和向上=单价)。该查询适用于大多数记录,但在大约30%的记录中,适当的价格字段在应该填充时为空。我假设我的查询中一定有一个bug。如果有人能调试,我将不胜感激。理想情况下,您可以为我提供适当的SQL以便复制和粘贴 SELECT tlsp.PART_ID, IIf(IsNull([tlsp].[qb1]) And [tlsp].[last_sell_prc_cstmr]

我有一个嵌套的
if
语句,用于识别低于适当单价出售的
零件ID
,用于给定的价格分割数量(
qb
=数量分割和
向上
=单价)。该查询适用于大多数记录,但在大约30%的记录中,适当的价格字段在应该填充时为空。我假设我的查询中一定有一个bug。如果有人能调试,我将不胜感激。理想情况下,您可以为我提供适当的SQL以便复制和粘贴

SELECT tlsp.PART_ID, 
   IIf(IsNull([tlsp].[qb1]) 
           And [tlsp].[last_sell_prc_cstmr]<[tlsp].[last_sell_prc_cstmr],
       [tlsp].[last_sell_prc_cstmr],
       IIf([tlsp].[last_order_qty_by_cstmr]>=[tlsp].[qb1]
              And [tlsp].[last_order_qty_by_cstmr]<[tlsp].[qb2] 
              And [tlsp].[last_sell_prc_cstmr]<[tlsp].[up1],
           [tlsp].[up1],
           IIf([tlsp].[last_order_qty_by_cstmr]>=[tlsp].[qb2] 
                   And [tlsp].[last_order_qty_by_cstmr]<[tlsp].[qb3] 
                   And [tlsp].[last_sell_prc_cstmr]<[tlsp].[up2],
               [tlsp].[up2],
               IIf([tlsp].[last_order_qty_by_cstmr]>=[tlsp].[qb3] 
                       And [tlsp].[last_sell_prc_cstmr]<[tlsp].[up3],
                   [tlsp].[up3])))) AS [proper price]
FROM tblLastSellPriceToCustomer_tmp AS tlsp;
选择tlsp.PART\u ID,
IIf(IsNull([tlsp].[qb1])
和[tlsp].[last_sell_prc_cstmr]=[tlsp].[qb1]

和[tlsp]。[last_order_quantity_by_cstmr]看这一点,你似乎遗漏了最后一个错误部分

 IIf (arg, true part, false part)
你的声明:

SELECT t.PART_ID, 
       IIf(arg,true,
           IIf(arg,true,
               IIf(arg,true,
                   IIf(arg,true,MISSING FALSE)))) AS proper price
FROM tblLastSellPriceToCustomer_tmp AS tlsp;

我已将缺少的部分标记为
,缺少的部分标记为FALSE

我为FALSE添加了null,但没有任何效果。请建议如果您希望避免null,我不认为null是错误部分的好选择。您需要选择默认价格。选择一个真正突出的价格可能是一个好主意,只是为了检查一下,所以您可能希望尝试
1000001
现在,对于错误部分。它不是一个幻数,它正在调试“只是为了检查”和“暂时”。OP似乎不知道空值来自何处。我同意你们两人的看法--“幻数”在调试过程中非常有用,只要你记得删除它们。。。。