2017-09-06 7 views
2

重複している日付の異なるInsurance Company IDの2つ以上のポリシーを持つVehicle Registration Numbersを照会したい。 Check this image for the datasSQLの重複日付

SELECT Vehicle_N0.* 
    FROM excel as Vehicle_N0 
    WHERE Vehicle_N0 IN (SELECT Vehicle_N0 
         FROM excel 
         GROUP BY Vehicle_N0  
         HAVING COUNT(DISTINCT Insurance_id) > 1) 
    ORDER BY vehicle_n0 

私はVehicle Registration Numbersが異なるInsurance Company IDを超える1つのポリシーを持つが、重複した日付を取得する方法をしまったこのクエリを使用しました。

私はこのクエリ

SELECT * 
    FROM excel 
WHERE begin_date <= end_date 
    OR begin_date >= end_date; 

を試してみました。しかし、私は重複した日付を取得できませんでした。

+2

を期待される結果を投稿してください、テキストではなく画像など、実際の結果が – TheGameiswar

+0

期待される結果は、私は重複した日付を取得したいです私のテーブルから。私はそれを試みたが失敗した –

+0

質問を改善する方法の詳細を知るためにこのリンクを見てください:https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question- on-a-public-forum/ – TheGameiswar

答えて

2

Vehicle_N0が異なるInsurance_Idとの重複エントリがあるかどうかを確認するためにexists()を使用した:

select v.* 
from excel as v 
where exists (-- only return rows where this query would return row(s) 
    select 1 
    from excel as i 
    where i.Vehicle_N0 = v.Vehicle_N0  -- Vehicle_N0 is the same 
    and i.Insurance_Id <> v.Insurance_Id -- Insurance_Id is not the same 
    and i.end_date > v.begin_date  -- date range overlaps 
    and v.end_date > i.begin_date  -- date range overlaps 
) 
order by v.Vehicle_N0 
+0

あなたは私にこの質問がどのように機能するかをexaplainできますか? ? –

+0

私は正しい結果を得ていますが、どういう仕組みか分かりません.... –

+0

@JeroldJoel私はいくつかのコメントで私の答えを更新しました。あなたが理解できない部分はありますか? – SqlZim

関連する問題