【问题标题】:Linking on Two Fields with 0s Trimmed - Access链接两个字段并修剪 0 - 访问
【发布时间】:2017-06-13 01:22:51
【问题描述】:

我有两个单独的查询,它们使用以下函数从两个单独的表中修剪 0

Replace(LTrim(Replace(Nz([03_Account_Matrix].[PORT_ACCT_DDA]),"0"," "))," ","0")

Nz 是因为第一个表中有一些空值。

Replace(LTrim(Replace(Nz([04_Balance].[Account]),"0"," "))," ","0")

这是因为它们可能是同一个帐户,但前导 0 的数量不同(我知道这设计很糟糕)。

An example number is 00040007613 and 0040007613 which are the same and get trimmed to be so.

但是,当我在此帐号上链接修剪后的查询时,没有结果;虽然,在查询中,它们是相同的值。为什么会出现这种情况?我最好的猜测是因为字符串可能包含不同数量的空格....?

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    是的,不同数量的空格与不同数量的零是相同的问题。你为什么用空格代替?为什么不只是空字符串?

    根据提供的示例:

    Replace("00040007613","0","") = Replace("0040007613","0","")

    不过考虑一下:

    Format("00040007613","00000000000") = Format("0040007613","00000000000")

    【讨论】:

    • 谢谢,我使用了您建议的格式样式,它立即解决了问题!
    • 不会替换("00040007613","0","") 导致 47613?
    • 是的。并且根据提供的示例,这两个值将是等效的。然而,这并不是一个可以作为分析基础的示例。并且可能不想删除中间的零,因为我希望您确实有一些值,例如 00000047613 和 00000407613 等,因此结果可能是错误的,这就是我提供格式选项的原因。 11 个地方就够了吗?
    • 我刚想到 Val() 函数也可能适用于这种情况。
    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多