1

別のテーブルのフィールドに似ているあるテーブルのフィールドでクエリを実行しようとしていますが、有効な結果を取得するのに問題があります。

inのようなPager_IDinを見つけたい。tbl_Emergin_Current_Device_Listing_20121126Pager_IDtbl_AMCOM_PROD

関連情報:

  • Pager_IDintbl_Emergin_Current_Device_Listing_20121126は最大 10 文字で、常に数字です (10 文字の Pager_ID の例: 3145551212)。
  • ただし、Pager_IDintbl_AMCOM_PRODは英数字 (3145551212@att.txt.com) にすることができます。これは同じユーザーです。
  • すべてのデータはテキストとして保存されます。

tbl_Amcom_Prod.Pager_ID「3145551212」が存在するときに「3145551212@att.txt.com 」を見つけられるようにしたいtbl_Emergin_Current_Device_Listing_20121126.Pager_ID。ただし、以下のコードでは、完全一致 (LIKE ではなく EQUAL) しか見つかりません。

現在のコード:

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

どのような変更を加える必要がありますか?

前もって感謝します!

4

1 に答える 1

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 と Mid を組み合わせて使用​​することもできます。

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])
于 2013-01-09T14:43:02.990 に答える