
- 作者: ジョー・セルコ,Joe Celko,ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2007/11/02
- メディア: 大型本
- 購入: 18人 クリック: 335回
- この商品を含むブログ (27件) を見る
メモ。オリジナルのクエリをそのまま実行してもエラーになるのでいくつか直している
Oracle EE 12.1.0.2.v10
-- 変更点 -- INTERVAL '365' DAYは12.1ではエラー ORA-00920: invalid relational operator になる -- INTERVALが364になることもあるので=を<=にした -- メモ -- CONSTRAINT 制約 (EXTRACTとあわせて) -- start_dateはfiscal_yearより1年前 -- start_dateは10/1 -- end_dateは9/30 CREATE TABLE FiscalYearTable1 (fiscal_year INTEGER NOT NULL PRIMARY KEY, start_date DATE NOT NULL, CONSTRAINT valid_start_date CHECK((EXTRACT (YEAR FROM start_date) = fiscal_year - 1) AND (EXTRACT (MONTH FROM start_date) = 10) AND (EXTRACT (DAY FROM start_date) = 01)), end_date DATE NOT NULL, CONSTRAINT valid_end_date CHECK((EXTRACT (YEAR FROM end_date) = fiscal_year) AND (EXTRACT (MONTH FROM end_date) = 09) AND (EXTRACT (DAY FROM end_date) = 30)), CONSTRAINT valid_interval CHECK ((end_date - start_date) <= 365)); INSERT INTO FiscalYearTable1 VALUES(1995, DATE '1994-10-01', DATE '1995-09-30'); INSERT INTO FiscalYearTable1 VALUES(1997, DATE '1996-10-01', DATE '1997-09-30'); INSERT INTO FiscalYearTable1 VALUES(1998, DATE '1997-10-01', DATE '1998-09-30'); -- 終了日が8月 INSERT INTO FiscalYearTable1 VALUES(1996, DATE '1995-10-01', DATE '1996-08-30'); -- 開始日が2日 INSERT INTO FiscalYearTable1 VALUES(1999, DATE '1998-10-02', DATE '1999-09-30');
http://www.geocities.jp/mickindex/database/db_support_sqlpuzzle.html#LocalLink-p1