2017-01-25 6 views
0

SQLでこれを行うことはできますが、列を比較しようとしていますある表では別の表の列に、SQL Serverデータベースで2つのテーブルを比較して、 "有料"または "未払い"の新しい列を作成する必要があります

だから、すべてのデータを「PolicyList」という名前のテーブルがあります。

私は別のテーブル名 "PolicyWithPayments"を持っていますが、これには特定のレコードのみが含まれています。

私はこのように、これらの2を比較したいと思います:私は最初の2つの列のデータを持っていますが、私は3列目、PaidNotPaidを必要とする、私の新しいテーブルであれば基づく移入する

**PolicyList**   **PolicyWithPayments**   **HitRWithPay** 
*PolicyNumber*    *PolicyNumber*     *PaidNotPaid* 
    1212      1212       Paid 
    2323      3434       NotPaid 
    3434              Paid 

その番号はPolicyWithPaymentsに存在します。

数は数がPolicyWithPaymentsにない場合PolicyWithPayment = "Paid"

であるが、あなたが他のどの情報が必要な場合Policy List = "NotPaid"

であるか、何が私に教えてください明確にされていない場合。

ありがとうございました!

ありがとうございます!言っ

select pl.*, 
     (case when pwp.PolicyNumber is not null then 'Paid' else 'NotPaid' end) as PaidNotPaid 
from PolicyList pl left join 
    PolicyWithPayments pwp 
    on pwp.PolicyNumber = pl.PolicyNumber; 

は、私が実際にこの目的のためにexistsを使用して好む:

select pl.*, 
     (case when exists (select 1 from PolicyWithPayments pwp where pwp.PolicyNumber = pl.PolicyNumber) 
      then 'Paid' else 'NotPaid' 
     end) as PaidNotPaid 
from PolicyList pl; 

利点を私は明らか

答えて

1

一つの方法は、left join使用しています....私がやっていたかわかりませんでした2番目のテーブルに重複がある場合は、これによって誤って行数が増えることはありません。

+0

ありがとうございますGordon Linoff !!!!私はそれが完璧に働いた私の人生に借りています。 –

関連する問題