SQL Server

日付の重複をSQLで検索する

投稿日:2013/04/05 更新日:

SQLを使って期間の重複を見つけ出す

SQLを使って、開始日付、終了日付を持っているレコードの
期間の重複を検索して見ます。

テーブルの準備

まずは以下のようなレコードに有効期限を管理する開始日付、終了日付を
持ったテーブルを作成します。

レコード作成

次に以下のように開始日付と終了日付が重複したレコードを作成します。

data_cd from_date to_date data_name
1 2013-01-01 2013-12-31 DATA_CD=1基準レコード
2 2012-12-01 2013-11-30 DATA_CD=2、TOが重複
2 2013-01-01 2013-12-31 DATA_CD=2基準レコード
3 2013-01-01 2013-12-31 DATA_CD=3基準レコード
3 2013-02-01 2014-01-31 DATA_CD=3、FROMが重複
4 2013-01-01 2013-12-31 DATA_CD=4基準レコード
4 2013-02-01 2013-11-30 DATA_CD=4、FROM,TOが重複
5 2012-01-01 2012-12-31 DATA_CD=5FROM,TOがともに過去
5 2013-01-01 2013-12-31 DATA_CD=5基準レコード
6 2013-01-01 2013-12-31 DATA_CD=6基準レコード
6 2014-01-01 2014-12-31 DATA_CD=5FROM,TOがともに未来

日付の重複をSQLで検索

実際に開始日付、終了日付の期間が重複しているレコードを検索してみます。

以下が実行した結果です。

data_cd data_name from_date to_date
2 DATA_CD=2、TOが重複 2012-12-01 2013-11-30
2 DATA_CD=2基準レコード 2013-01-01 2013-12-31
3 DATA_CD=3基準レコード 2013-01-01 2013-12-31
3 DATA_CD=3、FROMが重複 2013-02-01 2014-01-31
4 DATA_CD=4基準レコード 2013-01-01 2013-12-31
4 DATA_CD=4、FROM,TOが重複 2013-02-01 2013-11-30

スポンサーリンク

当サイトのおすすめ記事

パソコン 1

初心者でも失敗しないレンタルサーバーの選び方ですが、最近ではブログを立ち上げて、そこから広告収入を得る「アフィリエイト」が随分一般的になりました。 私の周りでも実際にやっている人が多くいます。 アフィ ...

プログラミング 2

SQLでIFを書けばWHERE句の内容を変えて検索できますが、条件ごとに同じようなSQLを 複数回書くのは面倒なので、1行で分岐できないかと言う事でSQLを作って見ました。 SQLでIFを使わずに条件 ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

SQLServerでは「ユーザー定義型」と呼ばれる独自のテーブル型をした戻り値を返す関数を作成することができます。 その作り方と使い方を解説します。 SQLServerでテーブル型を戻り値とする関数を ...

5

アフィリエイトでいきなり成果を出すのは難しいです。 でも、成果がないとレンタルサーバー代やドメイン代がペイできません。 しかも長い間、結果がでないとやる気もなくなってしまいます。 そういったことを防ぐ ...

-SQL Server
-, , ,

Copyright© ソフトウェア開発日記 , 2018 All Rights Reserved.