2009-11-05 20 views
1

如何使用IIf函数编写SQL查询? 例如,我想编写这样的事:Ilf和SQL查询

SELECT priceNetto, vat, 
    PriceBrutto:Ilf(Country="ABC", priceNetto*1.22, priceNetto) 

,但它不会编译。

PriceBrutto是一个动态列(在查询中没有该列,但我想“编译”此列以编程方式在我的示例中)。

回答

5

您可以使用它像这样:

SELECT priceNetto, vat, IIf(Country='ABC', priceNetto*1.22, priceNetto) AS PriceBrutto, ... 
+1

作品!非常感谢! – Dariusz 2009-11-05 16:11:09

+0

@dario,我很高兴我能帮忙:-) – 2009-11-05 16:16:57

0

尝试:

SELECT priceNetto,增值税,IIF(国家= “ABC”,priceNetto * 1.22,priceNetto)作为PriceBrutto ...

0

为主题的变化,更容易一点点跟着我的眼睛:

SELECT priceNetto, vat, 
     priceNetto * IIf(Country='ABC', 1.22, 1) AS PriceBrutto, 
     ... 

注意,数据T表达式结果的类型将根据Country的值而改变,这有点奇怪。如果Country = 'ABC'那么结果几乎肯定会被强制输入DECIMAL。这是你的意图吗?可能是的:听起来就像你正在申请税,Access Database Engine的DECIMAL类型展品的截尾是四舍五入的,与税务局一样;其他类型显示银行家的舍入,这可能不是我的经验中税收的正确舍入算法。

但是,如果您不想要DECIMAL结果,则需要明确地将结果或乘数转换为所需的类型。