2016-12-26 5 views
0

ありつテーブルフェッチレコード

A(UCID、CREATE_DATE、Av_ID、PHONE_NO)

B(UCID、CREATE_DATE、Av_ID、PHONE_NO)

UCIDがBに取り込まれていない可能性がある(UCIDはnullの場合があります) レコードをフェッチするので、最初にUCIDに基づいてAに存在するレコードをフェッチする必要がありますB内ではなく、残りの3列に基づいて(Create_Date、Av_ID、Phone_No)..

私はSO FARやっていること210

は、それが実行に約8分を取っているので、レコード数があるので

SELECT A.* INTO #TEMP FROM A LEFT JOIN B WHERE B.UCID IS NULL 
SELECT A.* FROM #temp JOIN B on A.CREATE_DATE= B.CREATE_DATE WHERE A.PHONE_NO=B.PHONE_NO AND A.AV_ID=B.AV_ID 

されているので、単一の参加または使用せずに使用して同じことを行うにはどのような方法がある場合一時table..pleaseヘルプ

答えて

1

シングルクエリB.Create_Dateがnullの条件で正常に動作し

SELECT A.* 
FROM A 
    LEFT JOIN B on (A.UCID = B.UCID) or 
     (B.UCID IS NULL AND A.CREATE_DATE= B.CREATE_DATE AND A.PHONE_NO=B.PHONE_NO AND A.AV_ID=B.AV_ID) 
WHERE B.UCID IS NULL 
+0

... Thanku – Soniya