HOME»応用情報技術者試験掲示板»平成23年特別午後問6 設問1(2)のC
投稿する

平成23年特別午後問6 設問1(2)のC [3738]

 wataさん(No.1) 
https://www.ap-siken.com/kakomon/23_toku/pm06.html

平成23年特別午後問6 設問1(2)のCの回答、「注文.注文年月日+180>:今日」 はこのようになっていますが、
「今日を含めて過去180日以内」であるSQLの場合には、「注文.注文年月日+180>=:今日」のように = はつかないのでしょうか?
過去問を解いたときに、私は=を付けて誤りだったので気になり質問です。

「"発行年月日+60>:今日"は,発行年月日がSQL実行時の年月日を含めて過去60日以内であることを示す」という例があるので=がなくてもいいということだとは思いつつも、=があったときも「今日を含めて過去180日以内」の条件は満たしているのではとも思い、ご意見伺いたいです。
よろしくお願いいたします。
2022.09.28 12:40
Rさん(No.2) 
数値が大きい場合は、小さい数値で検算することをお勧めします。

今日を含めて1日以内や、今日を含めて2日以内をイメージすればどこまでを含めるかがわかりやすくなります。
2022.09.28 13:01
AP受かりたいマンさん(No.3) 
分かりやすくするためにSQLを実行した日付が1月20日、
今日を含め10日以内のレコードを表示するとします。
この場合1月11日までのレコードを表示したい訳です。
正解のように
注文.注文年月日+10>:今日
と書いた場合、注文日が1月11日であれば
1月11日+10日>今日(1月20日)となり成立
注文日が1月10日であれば
1月10日+10日>今日(1月20日)となり不成立で
10日以内のレコードを表示することが出来ます。
逆に
注文.注文年月日+10>=:今日
と書いた場合、注文日が1月10日だと
1月10日+10日>=今日(1月20日)で成立してしまい
11日以内のレコードを表示してしまいます。
境界値の不等号は本当に間違いやすいので本番でミスしないようにしたいですね…。
2022.09.28 13:25
 wataさん(No.4) 
ありがとうございます
「今日を含めて過去N日以内」のところで私の認識が誤っていたことに気付けました

2022/09/02が今日としたとき、「今日を含めて過去1日以内」の場合は、
X 今日に加えて過去1日つまり2022/09/02に加えて2022/09/01ではなく、
◯ 今日が過去1日に該当するので2022/09/02のみになるのですね

注文年月日が、2022/09/01の場合は過去1日以内に含まれないので、
「2022/09/01 +1 > 2022/09/02」となる( >= ではなく > になる)と

理解できました!
過去問で境界値の不等号はミスしやすいと痛感できてよかったです
2022.09.28 13:39

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop