2017-08-08 1 views
-1

私は、理想的な世界では、上向き販売の一部として販売されていたアイテムの「ポリシー」ごとに1行しか返さないテーブルを用意しています。UNIONを1つの行に限定して 'はい'の値を設定します

これを 'PolRef @'ごとに1行にしたいのですが、基本的に 'Yes'は列に存在する場合は「No」を上書きする必要があります。

[email protected] [email protected] Uk Eu Date Ep500 Ep700 Ep3000 Keycare Wind Ep350 Ep250 Legal Totaladdon Finance_yn 
2 ROGX17PC01 Yes No 2017-07-31 00:00:00.000 No No No No No NULL NULL NULL 62.00 Yes 
2 ROGX17PC01 No No 2017-07-31 00:00:00.000 No No No No No NULL NULL Yes 32.00 Yes 

これは一例ですが、私は、私はGROUPにBY PolRefの@をGROUPを行い、その後、TotalAddonを合計可能性が知っているしかし、私はそれを持つことができますどのように「はい」「そのために列に存在する場合はそのようにPolRef @ 'が表示されます。

基本的に上記の結果は、

[email protected] [email protected] Agent Uk Eu Date Ep500 Ep700 Ep3000 Keycare Wind Ep350 Ep250 Legal Totaladdon Finance_yn 
2 ROGX17PC01 NULL Yes No 2017-07-31 00:00:00.000 No No No No No NULL NULL Yes 94.00 Yes 
+1

使用しているデータベースに質問をタグ付けします。 –

答えて

0

これは、優先順位付けクエリであるように見えるはずです。 1つの方法は、row_number()を使用します。

select t.* 
from (select t.*, 
      row_number() over (partition by [email protected] 
           order by uk desc -- 'Yes' comes before 'No' 
           ) as seqnum 
     from t 
    ) t 
where seqnum = 1; 
+0

こんにちはGordon、あなたはただ 'UK'だけで注文しますが、他の列には 'Yes'と表示されます。私はあなたの応答に感謝します。 – Lynchie

関連する問題