【问题标题】:Inner join on a partial column in AccessAccess 中部分列的内部联接
【发布时间】:2015-05-11 18:46:52
【问题描述】:

我正在尝试在 MS Access 2010 中连接两个表,其中连接条件为 part of(A.col1) = B.col2。到目前为止,我还无法弄清楚如何做到这一点。

我的两个表有这些关键列:

  1. 表 1 的列 ICD9 Code-Description* 具有如下值:
    842.00 - Sprain/strain, wrist
    924.11 - Contusion, knee
  2. 表 2 的列 Dx 具有如下值:
    842
    924.11

我已经尝试了这两个加入条件:

FROM Table1 
  INNER JOIN Table2 ON Table1.Replace(LTrim(Replace(Left(ICD9Code-Description],
                           (InStr(1,[ICD9Code-Description]," "))-1),"0"," "))," ","0")  
                       = Table2.Dx

SELECT ICD9
  FROM Table2 INNER JOIN 
       (SELECT Replace(LTrim(Replace(Left([ICD9 Code-Description],
              (InStr(1,[ICD9 Code-Description]," "))-1),"0"," "))," ","0") AS ICD9
          FROM Table1)
       ON Diag.DX = ICD9

Access 都不喜欢。

如果可能的话,我想避免将连接条件部分拉到Table1 中自己的列中。

Access 方法是什么?

*不要因为列名而讨厌我。不是我创造的,我只是要支持它。

【问题讨论】:

    标签: ms-access join vba ms-access-2010


    【解决方案1】:

    Val() 函数“将字符串中包含的数字作为适当类型的数值返回。”(请参阅 Access 内置的 Val 函数帮助主题-在帮助系统中。)

    对于您的情况,“整洁的事情”是它从字符串中读取字符,直到遇到不能成为有效数字一部分的字符。但它不会引发错误。它只保留它已经收集的数字字符并忽略其余部分。

    这是立即窗口中的两个示例...

    ? Val("842.00 - Sprain/strain, wrist")
     842 
    ? Val("924.11 - Contusion, knee")
     924.11 
    

    所以Val() 应该使您的JOIN 更简单,即使您还需要将它应用于Table2.Dx 字符串...

    FROM
        Table1 INNER JOIN Table2
        ON Val(Table1.[ICD9Code-Description]) = Val(Table2.Dx)
    

    【讨论】:

    • 是的,很遗憾,Table2.D 实际上是一个文本字段。我才意识到这一点。 Str(Val(ICD9Code-Description])) = Table2.Dx 修复了这个问题,但是现在我没有得到任何结果而不是错误。我将不得不再打我的头。好消息是Table2.DxDx = 842 作为文本字符串,而不是Dx=842.00,所以简单的Str() 修复了它。不过,谢谢,Val() 是一个非常有用的功能,并且比之前的灾难更容易阅读!
    • 你先生,真是个天才!!我不确定为什么 Str(val()) = ... 没有,但我会接受它!我还想扼杀设计这个数据库的人,因为他疯狂的列名和列中数据的愚蠢组合,但幸运的是,他不再在这里工作。如果他是,我可能会身陷囹圄……:/
    • 我很高兴它可以工作,但对我来说似乎有太多的运行时箍。 :-) 如果你被那个桌子设计困住了,我唯一能提供的就是同情。 :-0
    • 修复它的机会来了,但现在,我被困住了,很高兴接受你的同情......
    猜你喜欢
    • 1970-01-01
    • 2013-10-22
    • 2012-07-19
    • 2017-08-04
    • 1970-01-01
    • 2010-10-16
    • 2014-07-17
    • 1970-01-01
    • 2011-12-22
    相关资源
    最近更新 更多