【问题标题】:Setting a default value in a blank field in an Access query在 Access 查询的空白字段中设置默认值
【发布时间】:2011-02-08 16:34:42
【问题描述】:

这可能已经在别处得到解答,但我找不到!

出于计算和报告目的,我将来自不同来源的 2 个查询合并到一个查询中。如果没有数据,两个来源不通用的字段将显示为空白,并且不能用于算术。

我想在空白处设置默认值为零,而不是必须将查询分叉到另一个表中并在所有空白字段上运行更新查询。

一定有更简单的东西!帮助!

【问题讨论】:

  • 一个 iif() 或 Nz() 应该可以解决问题,但是您能否编辑您的问题以包含您的查询?
  • @JohnK813 我认为您不妨将其发布为答案:)
  • 您想更改表结构以使字段具有默认值,或者您想更新现有数据以摆脱所有 Null,还是只想将它们转换为一些数据检索或表示层的价值?你需要 Null 吗?是否有意义,或者 0(或其他适当的默认值)是否更有用?
  • 我使用 Nz 函数将零放在空字段中,但是当我尝试为它们执行计算时,它们组合在一起,如下图所示:enter image description here

标签: ms-access default-value


【解决方案1】:

试试这个:

SELECT 
nz(value1, 0), nz(value2,0), nz(value3,0)
FROM table1 left outer join table2 on table1.column = table2.column

除非您的查询类似于约翰用(笛卡尔)回答的内容,否则他的答案更合适......(如果使用不正确,笛卡尔是危险的......取决于允许单个表变得多大,您可以杀死使用它们的访问应用程序)

【讨论】:

    【解决方案2】:

    您可能想要使用Nz()iif(),具体取决于该“空白”是否真的只是一个空白(空字符串)或 Null。

    所以你的选择是:

    SELECT Nz(source1.a + source2.b,0) FROM source1, source2
    

    或:

    SELECT iif(source1.a + source2.b <> "", source1.a + source2.b, 0) FROM source1, source2
    

    【讨论】:

    • 恐怕你必须对每个字段(列)使用Nz,否则如果其中一个字段为null,则会返回null。
    • 只是为了扩展你的例子......你可以做 'nz(source1.a) as val1, nz(source2.b,0) as val2, val1 + val2 as total ' 当然还有所有适当的括号
    猜你喜欢
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2020-07-29
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多