・FROM句の表参照カンマリストは必要十分か?過不足をもう一度チェックしろ。
・x IN ( SELECT x FROM ... )だ。同じにしとけ。
・x = ANY(副問合せ)とx IN(副問合せ),x <> ANY(副問合せ)とx NOT IN(副問合せ)は同じだ。覚えとけ。
・EXISTS ( SELECT * FROM ... )だ。EXISTSのXとIで*だ(w
・結合条件は問題文に既出でないか?周りを見ろ。
・列名はかぶってないか?表名.を忘れるな。
・FROM句を安易に列記してないか?右に JOINがあれば,最後の表名は結合されるテーブルだということを忘れるな。
・BETWEEN A AND Bだ。for i=0 to X 世代は気をつけろ(w
・GRANT 権限 ON 表名 TO 権限受領者だ。全ユーザはPUBLICだ。
・DECLARE カーソル名 CURSOR FOR 問合せ式だ。覚えとけ。
«続きを隠す
Commented by はぁはぁ at 2005-01-24 22:40 x
>gakkoさん
下でのレスありがとうございます。
まだ午後2に手を付けていないので、どんな問題が出題されるのかわかんない事ばかりです。ほとんど(?)出ないという事なので、このまま午後1をクリアするための学習をしていきたいと思います。
SOL関連の問題での疑問なんですけど、H11午後1問2の設問1の設問文をどうとらえていいかわかりません。
問題文中([人事情報管理業務](1))では
「退職フラグを’1’に変更し、退職年、退職月、退職日を設定」
と書いてあります。しかし、設問文中では、退職フラグを’1’に変更することだけを思わせるような感じで書かれています。
また、僕の解答は[人事情報管理業務](1)から、毎月20日に退職者の更新処理(=設問1でのSQL文)が行われると考えたので
UPDATE 従業員
SET 退職フラグ = '1'
WHERE 生年 = 1939 AND
(生月 = 4 AND 生日 >= 21) AND
(生年 = 5 AND 生日 <= 20)
にしました。う~ん。。違うのかなぁ・・・
Commented by gakko at 2005-01-25 00:01 x
>はぁはぁ さん
退職年,退職月,退職日に満60歳の誕生日の前日を設定しなくて良いのか?と,いうことですよね?
設問では,一括して退職フラグを'1'に更新する処理と書いてあり,退職年月日を設定する処理とは書いていないので,フラグのみの更新でよいかと思います。
余談ですが,1日が誕生日の退職者(昔の人は元旦が誕生日という人も多い(w )の前日を設定する。というのを,標準SQLで表現できそうな気がしません。。。できるのかな?>>9 殿
さて,20日〆にかかるのは誕生日が21日の人まで ですので,設問の条件だと,生年月日が1939年4月22日~5月21日の人ということになります。
SQLの方ですが,
UPDATE 従業員
SET 退職フラグ = '1'
WHERE 生年 = 1939 AND
((生月 = 4 AND 生日 >= 22) OR
(生年 = 5 AND 生日 <= 21))
かな。と,思います。
>=(<=)を>(<)で表現したり,BETWEENもアリですね。
Commented by gakko at 2005-01-25 00:05 x
いやぁ~H11午後Ⅰ問2がITEC本に載ってなくてググってました。。。
何のことはない,本棚に眠っている2004予想問題集に載ってた(苦笑
ITECの解答例はBETWEEENを使ってありました。
BETWEENだと,4月が何日まであるのかを誤って解答を間違ったら最悪ですよね。。
Commented by はぁはぁ at 2005-01-25 00:37 x
>gakkoさん
レスありがとうございます。
>さて,20日〆にかかるのは誕生日が21日の人まで ですので,設問>の条件だと,生年月日が1939年4月22日~5月21日の人ということ>になります。
見逃してました。処理基準日が20日ってことは、誕生日が21日の人まで考えないといけなかったですね。
細かいところを見逃してしまうので、こういう仕事向いていないのかも。。
あと、僕の解答の
(生月 = 4 AND 生日 >= 21) AND←
(生年 = 5 AND 生日 <= 20)
矢印の部分はORでしたね。間違えた。
参考までに、3週間本(通称=糞本)の解答を紹介します。
1.
UPDATE 従業員
SET 退職フラグ = '1'
WHERE 生年 < 1939 OR
(生年 = 1939 AND 生月 < 5) OR
(生年 = 1939 AND 生月 = 5 AND 生日 <= 21)
2.
UPDATE 従業員
SET 退職フラグ = '1'
WHERE 生年 * 10000 + 生月 * 100 + 生日 <=19390521
なんてのもありました。この本では、毎月20日に処理をしないことになっています。(これでも結果は同じだけど・・・)
Commented by 9 at 2005-01-25 00:57 x
あんなあ、ハァハァよ。H11午後1問2設問1の質問をこのトビ(なんて呼ぶの?w)でするな。右のカテゴリっての見てみ?なんのために年毎に分類してあるんだよ。まあ確かに午後ⅠのSQLネタではあるがな。
gakkoもなぜH11は問2やってないんだよw
Commented by gakko at 2005-01-25 06:42 x
>9 さん
だって,ITECの2005予想問題集にもデータベース技術にも本試験問題集載ってなかったし,去年のこと(2004予想問題集)なんて,すっかり忘れてたし(w
Commented by gakko at 2005-01-25 07:14 x
H11午後1問2について
http://tedb.asobo-ya.net/blog/archives/000245.html で記事をまとめています。
コピペしただけだけど・・・(w