上記の続きです。
今回は、決算情報をデータベース化する方法で準備した、
Q売上高 numeric(50),
Q営業利益 numeric(50),
Q経常利益 numeric(50),
Q当期純利益 numeric(50),
この4つのカラムに累積ではない四半期決算の情報を突っ込んで行きます。
やる事はとても単純で、
・第1四半期はそのまま
・第2四半期は第1四半期の数値を差し引く
・第3四半期は第2四半期の数値を差し引く
です。
PL/SQLを書いて更新します。以下のように組みました。
DO $$
DECLARE
ls_kessanki1 text;
ls_kessanki2 text;c1 cursor for
select
b.証券コード
, b.会計基準
, b.連結個別
, b.決算期間
, b.決算期
, b.期首
, b.期末
, b.売上高 – a.売上高 “Q売上高”
, b.営業利益 – a.営業利益 “Q営業利益”
, b.経常利益 – a.経常利益 “Q経常利益”
, b.当期純利益 – a.当期純利益 “Q当期純利益”
from
決算F a
inner join 決算F b
on a.証券コード = b.証券コード
and a.会計基準 = b.会計基準
and a.連結個別 = b.連結個別
and a.決算期 = b.決算期
and a.期首 = b.期首
and b.決算期間 = ls_kessanki2
where
a.決算期間 = ls_kessanki1;BEGIN
ls_kessanki1 := ‘第1四半期’;
ls_kessanki2 := ‘第2四半期’;for ccc1 in c1 loop
update 決算F
set
Q売上高 = ccc1.”Q売上高”
, Q営業利益 = ccc1.”Q営業利益”
, Q経常利益 = ccc1.”Q経常利益”
, Q当期純利益 = ccc1.”Q当期純利益”
where
証券コード = ccc1.証券コード
and 会計基準 = ccc1.会計基準
and 連結個別 = ccc1.連結個別
and 決算期間 = ccc1.決算期間
and 決算期 = ccc1.決算期
and 期首 = ccc1.期首
and 期末 = ccc1.期末;
end loop;ls_kessanki1 := ‘第2四半期’;
ls_kessanki2 := ‘第3四半期’;for ccc1 in c1 loop
update 決算F
set
Q売上高 = ccc1.”Q売上高”
, Q営業利益 = ccc1.”Q営業利益”
, Q経常利益 = ccc1.”Q経常利益”
, Q当期純利益 = ccc1.”Q当期純利益”
where
証券コード = ccc1.証券コード
and 会計基準 = ccc1.会計基準
and 連結個別 = ccc1.連結個別
and 決算期間 = ccc1.決算期間
and 決算期 = ccc1.決算期
and 期首 = ccc1.期首
and 期末 = ccc1.期末;end loop;
END$$;
2期分の情報を結合したカーソルを作成し、売上高、営業利益、経常利益、当期純利益について、以下で引き算しています。
, b.売上高 – a.売上高 “Q売上高”
, b.営業利益 – a.営業利益 “Q営業利益”
, b.経常利益 – a.経常利益 “Q経常利益”
, b.当期純利益 – a.当期純利益 “Q当期純利益”
後はカーソルを前述の
・第2四半期は第1四半期の数値を差し引く
・第3四半期は第2四半期の数値を差し引く
の条件に合わせてループし、それぞれ第2四半期、第3四半期のQ売上高、Q営業利益、Q経常利益、Q当期純利益にUPDATEを掛けました。
今のところ用途が無かったのでやりませんでしたが、通期と第3四半期を対象とすれば、第4四半期の累積でない業績も算出可能です。
四半期決算の情報が増える度に実行することになるので、プロシージャにしたいところですが、残念ながらPostgresにはプロシージャの機能そのものが存在しないみたいです。テキスト保存しておいて、決算プロからデータ更新するたびに実行するしかないですね。
ちょっと汚いんですが、目的は達成しているのよしとします。
因みにSQLの実行ツールですが、A5:SQL Mk-2というフリーのツールを使っています。
フリーにしては機能が充実していて便利です。PL/SQLも良い感じに実行できるので、こちらを使って実行しました。
勿論実行できればなんでも良いんですけどね。
試しにselectして想定通り入ってるか確認します。
select
a.証券コード
, a.会社名
, a.連結個別
, a.決算期
, a.決算期間
, a.q売上高
, a.q営業利益
, a.q経常利益
from
決算F a
where
a.証券コード = ‘6044’
and a.連結個別 = ‘連結’
and a.決算期間 like ‘%四半期’
order by
決算期 desc
, 決算期間 desc
数字的にも問題無さそうでしたのでOKです。
これで決算情報を分析する基盤は完成です。
やりたいのは新高値を付けた複数の銘柄の四半期決算の前年対比の一覧です。
「株の公式」では以下を買いの基本的な条件としていました。
①直近1~2年の伸び率(前年同期比)で、経常利益は20%以上。
②直近2~3四半期の伸び率(前年同期比)で、売上10%以上。
③直近2~3四半期の伸び率(前年同期比)で、利益20%以上。
次回はこれを一発で出すSELECT文を作成します。
このSELECT文の作成ができれば、累積でない四半期決算ベースで伸び率の高い企業を算出することも可能となります。
コメント