掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

Top Index

2014年07月10日
時系列マスタとジャーナルデータとの紐付
唐突にSQLネタです。

マスタを時系列で管理(特定期間内ごとに値がかあるもの)したいということはよくあります。
消費税マスタなんかがよい例でしょう。
単純に設計するなら…

  Taxesテーブル
PK StartDate
  TaxRate

こんな感じでしょうか。
構造としてはこれでよさそうですが、ジャーナルデータ(契約とか)とリレーションを張ろうとすると一瞬「?」となりますよね。


例として
  Contractsテーブル
  ContractDate
のようなテーブルとリレーションし、
契約日ごとの税率を求めることを考えてみます。
単純なjoin句で紐付することはできなさそうなので、
以下のようにアプローチすることにしましょう。

1. Taxesテーブルは開始日しか持っていないので、終了日を求めて期間指定できる形式に加工する。
  ※終了日を物理的に列定義してもいいですが、編集時に整合性が壊れることがあるので
   極力持たないほうがいいでしょう。

2. 期間指定できるようになったTaxesテーブル(クエリ)を使い、
  betweenで契約日を挟んでやる。

できたクエリはこんな感じ。





続きを読む ...
 
[ 投稿者:mk3008 at 00:01 | SQL | コメント(0) | トラックバック(0) ]