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

标签 sql ms-access

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

tbl发票:Number | Date | Customer
tblInv详细信息:Invoice | Quantity | Rate | Description
tbl付款: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中没有相应的付款,字段为 null 而不是 0 。有没有办法强制生成的查询放置 0在本专栏中?

最佳答案

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

关于sql - 如何在 MS Access 查询中指定默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981117/

相关文章:

c# - 如何比较两个表中的列?

mysql - 将表中的两个时间范围合并为一个

SQL Server 查询 - 为什么会出现死锁?

用于运行 ms-Access 模块子例程的 Python 代码

ms-access - Access 数据库已被其他用户以独占方式打开

vba - 文件对话框不起作用

c# - 事务(进程 ID xx)在锁定资源上与另一个进程发生死锁,并已被选为死锁牺牲品。重新运行交易

sql - Oracle sql 中的 NVL 与 CAST?

mysql - 在 Microsoft Access 中使用 MySQL 查询

ms-access - Application.SysCmd 方法的所有可能用途