SQL Server

SQL Serverにて年度を条件にデータ抽出する方法

SQLの文法
記事内に商品プロモーションを含む場合があります

SQL ServerにてWHERE句で年度を条件指定する方法です。

実装方法

例えば、売上データから今年度以降の売上だけを抽出したい場合など、WHERE条件句に現在年度の初めを指定する書き方です。

現在が4月より前(1~3月)の場合は、年度初めの日は【現在年ー1】年の4月1日です。

現在が4月以降(4月~12月)の場合は、年度初めの日は【現在年】の4月1日です。

これを条件指定するには、以下のように指定します。

(①現在年が4月より前 AND 売上日が【現在年ー1】年の4月1日以降)

OR

(②現在年が4月以降 AND 売上日が【現在年】の4月1日以降)

サンプルSQL文

解説

使用する関数

MONTH([日付型の値]) 引数として指定された日付型の値から月を取り出して整数で返す関数です。
YEAR([日付型の値]) 引数として指定された日付型の値から年を取り出して整数で返す関数です。
CAST([変換前の値], [変換したい型]) 引数として指定された値を、指定された型に変換して返す関数です。
GETDATE() 引数なしで利用します。今日の日付を日付型で返す関数です。

解説

条件句は、A OR Bで構成されています。

Aの部分が、今日の月が4以上で日付が今年の4月1日以上

Bの部分が、今日の月が4未満で日付が昨年の4月1日以上

となっています。

今年の4月1日、去年の4月1日を日付型として作成するために、CASTを使っています。

 

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。