我需要幫助來做這個查詢選擇。幫助此JET Sql查詢
,比如我有這些領域:
- idInvoice
- 日期
- 量
取決於日期我需要乘場的 「量」 對於x號碼或其他人。
例如,如果日期小於01/01/2010乘以20。但如果是大或等於乘以35
Select idInvoice, date, amount, amount * varNumber from invoices
我需要幫助來做這個查詢選擇。幫助此JET Sql查詢
,比如我有這些領域:
取決於日期我需要乘場的 「量」 對於x號碼或其他人。
例如,如果日期小於01/01/2010乘以20。但如果是大或等於乘以35
Select idInvoice, date, amount, amount * varNumber from invoices
Select idInvoice, date, amount,
amount * case when date<'20100101' then 20 else 35 end as amount from invoices
我使用.net(jet sql)訪問。如果運行「CASE」顯示語法錯誤 – aco 2010-06-17 15:04:54
Jet/ACE在SQL中沒有CASE語句。 – 2010-06-18 22:11:05
假設你的日期字段不允許爲空,你應該能夠使用I如果表達式爲您計算。
SELECT
idInvoice,
[date],
amount,
IIf([date] < #2010/01/01#, amount * 20, amount * 30) AS extended_amount
FROM invoices;
注意我將方括號中的日期字段名稱括起來,因爲日期是Access中的保留字。方括號表示你想要一個名爲「date」的字段而不是Date()函數的數據庫引擎。
另外訪問日期字段包括一個時間組件。因此,在今年年初之前,這個查詢會比任何值多出20倍。這意味着對於凌晨1點的2010年1月1日,金額將乘以30.如果這不是您想要的,請更改IIf表達式。
如果您的[日期]字段允許爲空,請查看Access對Nz()函數的幫助。
或
SELECT
idInvoice,
[date],
amount,
amount *IIf([date] < #2010/01/01#, 20, 30) AS extended_amount
FROM invoices;
解決:可以做「聯盟」 – aco 2010-06-17 14:58:24
它被認爲是可以接受的回答你自己的問題。如果你已經解決了這個問題,你可以考慮提交你的解決方案作爲答案。 – Eric 2010-06-17 15:16:58
但我如何提交我的解決方案作爲答案?只有我可以編輯標題。 – aco 2010-06-17 15:57:51