如何在MS Access查询中指定默认值?

时间:2010-06-05 16:24:54

标签: sql ms-access

我有三个类似于以下的表:

tblInvoices:Number | Date | Customer
tblInvDetails:Invoice | Quantity | Rate | Description
tblPayments:Invoice | Date | Amount

我创建了一个名为exInvDetails的查询,向Amount添加了tblInvDetails列:

SELECT tblInvDetails.*, [tblInvDetails.Quantity]*[tblInvDetails.Rate]* AS Amount
FROM tblInvDetails;

然后我创建了一个查询exInvoices,将TotalBalance列添加到tblInvoices

SELECT tblInvoices.*,
  (SELECT Sum(exInvDetails.Amount) FROM exInvDetails WHERE exInvDetails.Invoice = tblInvoices.Number) AS Total, 
  (SELECT Sum(tblPayments.Amount) FROM tblPayments WHERE tblPayments.Invoice = tblInvoices.Number) AS Payments,
  (Total-Payments) AS Balance
FROM tblInvoices;

如果tblPayments中没有相应的付款,则字段为空,而不是0。有没有办法强制生成的查询在此列中放置0

2 个答案:

答案 0 :(得分:3)

使用nz()功能,如nz(colName, 0)中所示。这将返回colName,除非它为null,在这种情况下它将返回第二个参数(在本例中为0)。

答案 1 :(得分:1)

我认为默认值喜欢Field位置。例如,我的字段ID位于tblEmpPCs表中,我使用了以下条件。

IIf([Forms]![frmSearchByEmp]![cboTurul]="ID",[forms]![frmSearchByEmp]![Ezemshigch],[tblEmpPCs].[ID])

False值是Criteria的默认值。

Query Criteria Default Value in IIf function

我上传了查询条件的图片。它可能对你有帮助。