@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

SQLについて

投稿者投稿内容
Peko
会議室デビュー日: 2005/11/07
投稿数: 12
投稿日時: 2005-11-07 10:01
テーブル名:Tbl_SYUKEI
個人番号 クラス 名前  性別 郵便 所属 国語 数学 理科 社会 
050101,5年1組,清原和博,1,8600001,西武  , 50, 95, 40, 25
050102,5年1組,松坂大輔,1,8600001,西武  , 40, 85, 40, 0
050103,5年1組,中澤裕子,2,8680003,モーニング娘, 60, 75, 50, 75
050201,5年2組,久住小春,2,8680001,モーニング娘, 70, 65, 60, 65
050202,5年2組,加護亜衣,2,8680002,モーニング娘, 80, 55, 90, 55
050203,5年2組,長嶋茂雄,1,8600002,巨人  , 90, 65, 30, 20
050204,5年2組,辻 希美,2,8680002,モーニング娘,100,100, 70, 85
050205,5年2組,王 貞治,1,8600002,巨人  , 30, 40, 80, 40
050301,5年3組,鈴木一郎,1,8610001,アメリカ  , 20, 30, 60, 50
050302,5年3組,小野伸二,1,8650001,オランダ  , 0, 20, 10, 60
050303,5年3組,後藤真希,2,8680003,モーニング娘, 10, 45, 95, 70
050304,5年3組,中村紀一,1,8610001,    , 15, 0, 0, 10
050401,5年4組,保田 圭,2,8680003,モーニング娘, 65, 25, 65, 80
050402,5年4組,中村俊輔,1,8650002,イタリア  , 75, 35, 20, 90
050501,5年5組,中田英寿,1,8650001,イタリア  , 95, 45, 75,100

問題
Tbl_SYUKEIの中から、所属が'モーニング娘'に該当しているが、郵便番号が'8680003'と一致しない氏名と 所属が'モーニング娘'に該当していて、かつクラスが、'5年4組' の氏名を表示しなさい。
SELECT 氏名
FROM Tbl_SYUKEI
WHERE (所属='モーニング娘' And 郵便番号<>'8680003') Or (所属='モーニング娘' And クラス='5年4組');

結果

氏名
久住小春
加護愛
辻希美
保田圭

評価
取得した答えとしては正しいが、SQLとしては不正解(問題の内容にあっていない)。

どの部分が問題の内容にあっていないのでしょう?
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2005-11-07 10:17
焼きそばです。

引用:

Pekoさんの書き込み (2005-11-07 10:01) より:

評価
取得した答えとしては正しいが、SQLとしては不正解(問題の内容にあっていない)。

どの部分が問題の内容にあっていないのでしょう?




なぞなぞですか?

引用:

所属が'モーニング娘'に該当しているが、郵便番号が'8680003'と一致しない氏名



引用:

所属が'モーニング娘'に該当していて、かつクラスが、'5年4組' の氏名



の区別がないからってことですかね。
Peko
会議室デビュー日: 2005/11/07
投稿数: 12
投稿日時: 2005-11-07 10:29
焼きそばさんご返信ありがとうございます。

私はSQLを触るのが初めてで上司から課題を頂いてるのですが『問題の内容にあっていない』とはどういうことなんだろう?と思い他の方の意見を聞いて見たくて投稿しました。

一応先ほどの返信を元に修正して解決しました。ありがとうございました。
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-11-07 10:30
こんにちは、でっちです。

学校の課題か何かですか?
解答自体は誤りではないが、設問者の意図と異なってたから×ってことでしょうから、設問者に聞いた方が適切な答えが得られると思いますが(^_^;
考えられるパターンは2つあります。

1.所属の条件を纏めることができる。
SELECT 氏名
FROM Tbl_SYUKEI
WHERE 所属='モーニング娘' And (郵便番号<>'8680003' Or クラス='5年4組');

2.UNIONを使って欲しかった。
SELECT 氏名
FROM Tbl_SYUKEI
WHERE 所属='モーニング娘' And 郵便番号<>'8680003'
UNION SELECT 氏名
FROM Tbl_SYUKEI
WHERE 所属='モーニング娘' And クラス='5年4組';

#前段の学習内容に則したテストとかじゃないですか?
明智重蔵
大ベテラン
会議室デビュー日: 2005/09/05
投稿数: 127
投稿日時: 2005-11-07 14:41

現在西武じゃない
現在巨人じゃない
現在モーニング娘じゃない
のをdelete文で消して欲しかった



郵便番号が'8680003'と一致しない氏名
nullも一致しない扱いにしてほしかった



問いかけが二つなのだから
答えも二つ用意してほしかった

mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-11-07 15:06
単純に、問題が2つだったのを1つと解釈したんじゃないんですか?(^_^;
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2005-11-08 23:36
設問の日本語から汲み取れる限界は、やはりUNIONが適当でしょうか???
設問者の意図が知りたいですね。続報をお待ちしております。

#すでにモー娘を脱退したメンバーが含まれているので、
#それを除外するためにメンバー所属歴テーブルをJOINして欲しかった、、、とか。 (冗談ですよ)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-09 00:32
引用:

ロンロンさんの書き込み (2005-11-08 23:36) より:

設問の日本語から汲み取れる限界は、やはりUNIONが適当でしょうか???


ところが、

引用:

取得した答えとしては正しいが、SQLとしては不正解(問題の内容にあっていない)。


とありますね。

UNION であれば結果は変わりますよね。

# とりあえず本人に聞こうよには同意です。
# 聞く相手の順序が違うんじゃないでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)