2015-04-07 2 views
0

Я пытаюсь рассчитать плату, основанную на критериях размера, с помощью операторов SQL в MS Access.Заявление IFF с расчетом

Например if`x < 24 вычислить Количество * Плата или, если х> = 24 высчитывает количество х AltFee

Вот заявление Ифф я написал в Access

IIf([Query Testing].[Size]<"24",[Query Testing].[Quantity]*[DepositAndFees].[Fee],IIf([Query Testing].[Size]>="24",[Query Testing].[Quantity]*[DepositAndFees].[AltFee])) 
+0

ли это работает? Вам нужно объяснить, в чем проблема, если она на самом деле не работает, или мы не знаем, как вам помочь. –

ответ

1

Попробуйте удалить те дважды кавычки вокруг ваших ценностей так, что они рассматриваются как числа, а не строки (текст):

IIf([Query Testing].[Size]<24,[Query Testing].[Quantity]*[DepositAndFees].[Fee],IIf([Query Testing].[Size]>=24,[Query Testing].[Quantity]*[DepositAndFees].[AltFee]))

+0

Мне нравится ваше лучшее. ;) +1 для Великих умов думают одинаково. –

1

Является ли поле «Размер» текстовым типом данных? У вас есть кавычки вокруг него, которые будут оценивать его как строку. Попробуйте запустить его без кавычек (Предполагается, что это тип номера)

IIf([Query Testing].[Size]<24,[Query Testing].[Quantity]*[DepositAndFees].[Fee], 
IIf([Query Testing].[Size]>=24,[Query Testing].[Quantity]*[DepositAndFees].[AltFee])) 
+0

О, мужик, кого он собирается выбрать ?! –

0

Там нет необходимости во второй IIf, поэтому она может быть уменьшена до:

[Query Testing].[Quantity]*IIf([Query Testing].[Size]<24,[DepositAndFees].[Fee],[DepositAndFees].[AltFee]) 
Смежные вопросы