0

我需要帮助来执行此查询选择。

例如我有这些字段:

  • 发票
  • 日期
  • 数量

根据日期,我需要将字段“金额”乘以 x 数或其他数字。

例如,如果日期小于 01/01/2010 乘以 20 。但如果它是主要的或等于乘以 35

Select idInvoice, date, amount, amount * varNumber from invoices
4

3 回答 3

1

假设您的日期字段不允许 Null,您应该能够使用 IIf 表达式进行计算。

SELECT
    idInvoice,
    [date],
    amount,
    IIf([date] < #2010/01/01#, amount * 20, amount * 30) AS extended_amount
FROM invoices;

请注意,我将日期字段名称括在方括号中,因为日期是 Access 中的保留字。方括号向数据库引擎表示您想要一个名为“date”的字段而不是 Date() 函数。

访问日期字段还包括时间组件。因此,对于今年年初午夜之前的任何值,该查询将乘以 20。这意味着对于 2010 年 1 月 1 日凌晨 1:00,金额将乘以 30。如果这不是您想要的,请更改 IIf 表达式。

如果您的 [date] 字段允许 Null,请查看 Access 对 Nz() 函数的帮助。

于 2010-06-17T15:11:46.103 回答
1

或者

SELECT 
    idInvoice, 
    [date], 
    amount, 
    amount *IIf([date] < #2010/01/01#, 20, 30) AS extended_amount 
FROM invoices; 
于 2010-06-17T15:14:03.273 回答
-1
Select idInvoice, date, amount, 
amount * case when date<'20100101' then 20 else 35 end as amount from invoices 
于 2010-06-17T14:56:25.560 回答