2017-04-13 6 views
0

非常に混乱した結果が出てくるクエリを作成しました。この表の800以上の値があります既存のテーブルと作成された一時テーブルの値を一致させようとしています

IF OBJECT_ID('tempdb..#MentalDX') IS NOT NULL 
DROP TABLE #MentalDX 
CREATE TABLE #MentalDX (
MHDX VARCHAR(254)) 

INSERT INTO #MentalDX (MHDX) 
VALUES ('F03.90'),('F03.91')....; 

:開始するには、私は次の形式を使用して一時テーブルを作成して、特定のコード(varchar型)のリストを持っています。私は次のCASEステートメントを使用します:

CASE WHEN edg2.REF_BILL_CODE IN (mdx.MHDX) THEN edg2.REF_BILL_CODE 
    ELSE NULL 
    END AS mdx2 

私はいつもNULL値を取得しています。私はINの代わりに=を使用しましたが、違いはありません。私は、テストクエリを作成し、カラム参照をテーブルの既存の値に置き換えるだけで、一時テーブルが機能することを知っています。データベースは、REF_BILL_CODEがvarchar(254)であることを示しており、私は同じように私の一時テーブルの列を定義するようにしました。私が間違っているかもしれない何かアイデア?より多くのコードを共有することもできますが、私が個人的に特定できる情報にはできない項目がいくつかあります。

答えて

0

私の質問では、私は一時テーブルに参加しました。実際に私が後にしたのは以下のことです。

CASE WHEN edg1.REF_BILL_CODE IN (SELECT md.MHDX FROM #MentalDX md) 
    THEN edg1.EXTERNAL_ID 
    END AS mdx1 

これは以前のようにすべてのNULLの代わりに実際の結果を返しました。今私は新しい問題を抱えていますが、それを聞く前にもう少し研究をします。

関連する問題