dポイントプレゼントキャンペーン実施中!

知り合いに資料作成を頼まれたのですが、
SQLの作り方に四苦八苦してます。

SELECT 学生名簿. 名前,経済学史得点+経済総論得点
FROM 学生名簿.成績一覧
WHERE 学生名簿.学生証番号=成績一覧 学生証番号
AND 科目 LIKE‘経済’


つまり、このSQLが示すものは、
「学生名簿」と「成績一覧」の2つの表から
「名前」と「経済学史得点」と「経済総論得点」を抜粋し、
更に「学生名簿」から学生証番号の有無の確認
「経済OO」で始まる科目の履修が分かる(?)
↑ここが一番自信ないです…

と言うこと何でしょうか。。確認なのですが、
小さな事からアドバイス、ご指摘、ご指導を宜しく
お願い致します。

A 回答 (3件)

>更に「学生名簿」から学生証番号の有無の確認


WHERE句で「学生名簿」と「成績一覧」を結び付けています。
>AND 科目 LIKE‘経済’
>「経済OO」で始まる科目の履修が分かる(?)
科目が「経済」と一致するデータを抜粋します。
「経済○○」を探す場合は、%ワイルドカードを使って
AND 科目 LIKE '経済%'
となります。
    • good
    • 0
この回答へのお礼

ワイルドカードを忘れていました。すいません。。

>WHERE句で「学生名簿」と「成績一覧」を結び付けています。
と言うのは結びつけているとは学生証番号の事ですか?
度々すみません。

お礼日時:2007/01/02 23:49

>>WHERE句で「学生名簿」と「成績一覧」を結び付けています。


>と言うのは結びつけているとは学生証番号の事ですか?
2つの表を結合しているので、結合する条件が必要になります。
その条件がWHERE句で
「学生名簿」と「成績一覧」の両方に存在する「学生証番号」の等しい行を対応させるようにしています。
    • good
    • 0

成績一覧の科目が「経済○○」の人だけだすんですか?


だったらこれでいいのかなー?

SELECT  A.名前, B.経済学史得点+B.経済総論得点,
     A.学生証番号, C.科目

FROM   学生名簿 A
      INNER JOIN
     成績一覧 B ON (A.学生証番号=B.学生証番号)

WHERE   B.科目 LIKE‘経済%’

ORDER BY A.名前

ちょっと分からないのは、
成績一覧に
経済学史得点
経済総論得点
という固定科目のフィールドがあるのに
科目を絞り込んで抽出するという点。

どういうテーブル構成なのでしょう?
    • good
    • 0
この回答へのお礼

的確なSQLを有難うございます。
詳細は分からないのですが、知人から送られてきた
SQLを解釈しようと思い、ご質問させて頂きました。
(知人もこのSQLの意味をあまり理解していない模様で)

>WHERE 学生名簿.学生証番号=成績一覧 学生証番号
ここの条件の部分で一番頭を抱えています。
学生証番号と言うのは、ここで言うと名簿に該当する
生徒の学生証番号が有無を見る為なのですかね?

重ね重ねすみません・・・

お礼日時:2007/01/02 23:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!