访问查询,其中一个字段与另一个字段相似

时间:2013-01-09 13:33:45

标签: ms-access ms-access-2010

我试图在一个表中的字段上查询它在另一个表中的字段,但是在获取有效结果时遇到了问题。

我想在Pager_ID中找到tbl_Emergin_Current_Device_Listing_20121126,就像Pager_ID中的tbl_AMCOM_PROD一样。

一些相关信息:

    Pager_ID中的
  • tbl_Emergin_Current_Device_Listing_20121126最多为10个字符,并且始终为数字字符(例如10个字符Pager_ID:3145551212)。
  • 但是,Pager_ID中的tbl_AMCOM_PROD可以是字母数字(3145551212@att.txt.com,也是同一个用户。
  • 所有数据都以文本形式存储。

我希望能够找到" 3145551212@att.txt.com"在tbl_Amcom_Prod.Pager_ID当" 3145551212"存在于tbl_Emergin_Current_Device_Listing_20121126.Pager_ID中。但是,使用下面的代码我只能找到完全匹配(EQUAL而不是LIKE)。

当前代码:

SELECT DISTINCT tbl_emergin_current_device_listing_20121126.userrecno,
            tbl_emergin_current_device_listing_20121126.username,
            tbl_emergin_current_device_listing_20121126.department,
            tbl_emergin_current_device_listing_20121126.carriername,
            tbl_emergin_current_device_listing_20121126.protocol,
            tbl_emergin_current_device_listing_20121126.pin,
            tbl_emergin_current_device_listing_20121126.pager_id,
            Iif([tbl_amcom_group_call_leads_and_id].[amcom listing msg id], 
                [tbl_amcom_group_call_leads_and_id].[amcom msg group id], 
                [tbl_amcom_prod].[messaging_id]) 
                AS [Amcom Messaging or Message Group ID]
FROM   ((tbl_emergin_current_device_listing_20121126
     LEFT JOIN tbl_amcom_prod
            ON tbl_emergin_current_device_listing_20121126.pager_id =
               tbl_amcom_prod.pager_id)
    LEFT JOIN tbl_amcom_group_call_leads_and_id
           ON tbl_emergin_current_device_listing_20121126.pager_id =
              tbl_amcom_group_call_leads_and_id.[ams group call lead])
   LEFT JOIN tbl_deactivated_pager_list
          ON tbl_emergin_current_device_listing_20121126.pager_id =
             tbl_deactivated_pager_list.[pager number]; 

示例结果:

UserRecNo   UserName    Department  CarrierName Protocol    PIN PAGER_ID    Amcom Messaging or Message Group ID

43  Brown, Lewis    BJH Verizon 0   3145550785  3145550785  3145550785
52  Wyman, Mel  BJH Airtouch (Verizon) (SNPP)   3   3145558597  3145558597  3145558330

我也希望看到此记录,但不是当前代码:

57  Johnson, Mick   BJH AT&T    3   3145551234  3145551234@att.txt.com  3145559876

我应该做些什么改变?

提前致谢!

1 个答案:

答案 0 :(得分:1)

类似的东西:

 SELECT Pager_ID 
 FROM tbl_Amcom_Prod a
 LEFT JOIN  [tbl_Emergin_Current_Device_Listing_20121126] b
 On a.Pager_ID  & "*" Like b.Pager_ID 

这只适用于SQL视图,而不适用于设计视图。

你也可以混合使用Instr&中旬。

SELECT IIf(InStr([Pager_ID] & "",".")>0,
           Mid([Pager_ID],1,InStr([Pager_ID],".")-1),[Pager_ID ]) AS PID
FROM [tbl_Amcom_Prod]
WHERE IIf(InStr([Pager_ID] & "",".")>0,
           Mid([Pager_ID],1,InStr([Pager_ID],".")-1),[Pager_ID]) 
           In (SELECT Pager_ID 
               FROM [tbl_Emergin_Current_Device_Listing_20121126])