0

このクエリ選択を行うには助けが必要です。

たとえば、次のフィールドがあります。

  • idInvoice
  • 日にち

日付に応じて、 x番号または他の数値のフィールド「金額」を乗算する必要があります。

たとえば、日付が2010年1月1日より少ない場合、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」という名前のフィールドが必要であることをデータベース エンジンに通知します。

また、Access の日付フィールドには時刻コンポーネントが含まれます。したがって、そのクエリは、今年の初めの午前 0 時より前の値に対して 20 倍になります。つまり、2010 年 1 月 1 日の午前 1:00 の場合、amount は 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 に答える