が、私は、複数の基準に基づいて、2つのテーブルを結合しようとしています(月()関数を使用して)参加から1試合を返します:ポリシー番号、日付のトランザクション・タイプ、日付の年、月SQL Serverの:左
ポリシーの大半はこのコードで正常に動作しますが、結合条件を満たす複数行のデータがあるため、select文に重複する行が返されることがあります。
戻ってくるもの(最古の日付、最初の一致など)を選択する最良の方法はありません。実際にはコードが1行のデータ(重複なし)のみを返すようにします。
ご意見、ご協力をお待ちしております。
select
a.POLICY_NUMBER,
a.POLICY_TRANSACTION_TYPE,
a.POLICY_START_DATE,
b.COMMISSION_RATE,
from Table_1 as a
left join Table_2 as b
on
a.POLICY_NUMBER = b.POLICY_NUMBER
and a.POLICY_TRANSACTION_TYPE = b.TRANSACTION_TYPE
and year(a.POLICY_START_DATE) = year(b.EFFECTIVE_DATE)
and month(a.POLICY_START_DATE) = month(b.EFFECTIVE_DATE)
EDIT
サンプルTABLE_1
POLICY_NUMBER POLICY_TRANSACTION_TYPE POLICY_YEAR_START_DATE
1 REN 1/1/2016
1 MTA 15/1/2016
サンプルTable_2
POLICY_NUMBER TRANSACTION_TYPE EFFECTIVE_DATE COMMISSION_RATE
1 REN 1/1/2016 0.3
1 MTA 14/1/2016 0.1
1 MTA 16/1/2016 -0.1
だから、元のコードは、この...
を返します0POLICY_NUMBER POLICY_TRANSACTION_TYPE POLICY_YEAR_START_DATE COMMISSION_RATE
1 REN 1/1/2016 0.3
1 MTA 15/1/2016 0.1
1 MTA 15/1/2016 -0.1
MTAの行のうちの1つを返したいのですが、それは0.1手数料率でも、-0.1手数料率でも構いません。
使用しているデータベースであなたの質問にタグを付けます。 –
おそらく別名は重複を削除するでしょうか? – mfredy