• 締切済み

SQLの問題について

SQLの問題について Student(snum: integer, sname: string, major: string, level: string, age: integer) Class(name: string, meets at: time, room: string, fid: integer) Enrolled(snum: integer, cname: string) Faculty(fid: integer, fname: string, deptid: integer) これらが定義されており、主キーはStudentはsnum、Classはname、Enrolledはsnumとcname、Facultyはfidという風になっています。 1. Find the names of all Juniors (level = JR) who are enrolled in a class taught by I. Teach. 2. Find the age of the oldest student who is either a History major or enrolled in a course taught by I. Teach. の問題があるのですがどうSELECT文を書けばいいかわかりません。 教えていただけると本当にありがたいです。 よろしくおねがいします。

  • MySQL
  • 回答数1
  • ありがとう数25

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

SQL文の書き方だけがわからないなら、英語の質問をあげるのはやめましょう。 日本語で質問すれば少しはフォローがつくと思いますよ。

関連するQ&A

  • コンポジションについて

    public class Person{ public String name_ ; public int age_ ; public Person(){ name_ = "Asaya"; age_ = 61; } } public class Student{ public Person person_; public int grade_; public Student(){ person_.name_ = "Moto"; person_.age_ =2; grade_ = 0; } } public class SamConp1{ public static void main(String[] args){ Person person_ = new Person(); Student asaya_ = new Student(); System.out.println(asaya_.person_.name + asaya_.person_.age_+asaya_.grade__); } } 3つのプログラムを見るようにコンストラクタに引数を使わず、又継承を使わないでPerson クラスのname_ age_ それを拡張したStudetクラスのgrade_をmain関数で表したいのですが(希望としてはname_ "Moto" age_ 2 grade_ 0) 結果としては、 exception in thread "main" java.lang.nullpointerexception at student.<int>(Student.java:6) at SamConp1.main(SampConp1.java:4) となります。 まだ初心者で良く分りません。解決方法をお願いします。

    • ベストアンサー
    • Java
  • コンポジション コンストラクタに引数がある場合

    class Person{ public String name_; public int age_; public Person(String n,int a){ name_ = n; age_ = a; } } class Student{ public Person person_; public int grade_; public Student(Person p,int g){ person_ = new Person("MOTO",2); grade_ = g; } } public class Samconp2{ public static void main(String[] args){ Student asaya_ = new Student(p,0); } System.out.println(asaya_.person_.name+asaya_.person_.age_+asaya_.grade__); } 3のプログラムを見るようにコンストラクタに引数使い、又継承を使わないでPerson クラスのname_ age_ それを拡張したStudetクラスのgrade_をmain関数で表したいのですが(希望としてはname_ "Moto" age_ 2 grade_ 0) 結果としては、System.out.println(asaya_.personn_.name_ + asaya_.person_.age_ +asaya_grade_);で<identifierがありません>となります。 まだ初心者で良く分りません。解決方法をお願いします。

    • ベストアンサー
    • Java
  • スーパークラスについて

    下記のソースコードについて、質問がありますので記載致しました。 class TooYoungException extends Exception { TooYoungException(String message) { ------------------------ super(message); ------------------------ } } class AdultMember{ private String name; private int age; void setAge(int age) throws TooYoungException{ if (age > 18) { this.age = age; } else { throw new TooYoungException("年齢が低すぎます:" + age); } } int getAge() { return this.age; } } class Test{ public static void main(String args []) { AdultMember adm = new AdultMember(); try { adm.setAge(Integer.parseInt(args[0])); System.out.println("年齢を設定しました"); }catch(TooYoungException tme) { System.out.println(tme.getMessage()); } } } [質問内容] -----でかこってある部分の super(message) になりますが、 何故、この部分に throw new TooYoungException("年齢が低すぎます:" + age); の("")の文字が入り、文字が表示されることになるのでしょうか? とりわけ、superが指し示しているもの(Exceptionがスーパークラスに なると思われますが)はどれになるのでしょうか。 理解しきれていない部分が多数ありますが、ご教授の程お願い致します。

    • ベストアンサー
    • Java
  • JAVA Array and Exception

    内容が説明の仕方が悪くて申し訳ありませんでした。 プロジェクトの内容を書いてみます。 二つのexception classes: ClassNotFoundException ObjectNotFoundException を作る。 main methodのなかで、array of objects AO を作り、 そこに下記の六つのアイテムを含めます。 Class Value Integer 5 Integer 42 String "hello" String "there" Person "Laura" 40 Person "Peter" 35 そして、static method のserachを定義して、 その中で先ほど定義した二つの例外処置を行う。 一例 DがDouble, IがInteger = 25で、 search(AO, D) が例外のClassNotFoundExceptionを発生させる。 search(AO, I) の時はObjectNotFoundExceptionを発生させる。 さらにmain methodの中で、 Integer 5 Person "steve" 5 Double 42 もサーチしなければならない。 NOTE:  String name; int age; を含んだclass person をインプリメントしなければならない。 これがやりたい内容となっています。 一応ここまではトライしたのですが‥。 よろしくお願い致します。 class Assignment5{ public static void main(String[] args){ object[] AO = new object[6] AO[0] = new Integer(5); AO[1] = new Integer(42); AO[2] = new String("Hello"); AO[3] = new String("There"); AO[4] = new Person("Laura", 40); AO[5] = new Person("Peter", 35); }

    • ベストアンサー
    • Java
  • [Java]Javaの文法が間違っているのでしょうか・・・?

    6人分の小テストの点数を記録し,平均点,最高点,平均点以下の人の一覧を計算するプログラムを作成したいのです。 入力はコマンドラインから行います。 しかし,TEST配列がうまく初期化がうまく記述できないため,コンパイル時点で”シンボルが見つけられません”というエラーが出てしまいます。 Javaの経験が浅いので、文法そのものが間違っているか心配です。C言語についてはある程度知識がありますから、C言語と対比して教えて頂けたりすると大変たすかります。 宜しくお願い致します。 class Lecture { static Lecture[] TEST; static double avg=0; static int max=0; static int i = 0; static String kamoku; int scorebox; String name; String student_number; Lecture(int size){ TEST = new Lecture[size]; for (int i = 0; i < size; i++) { Exercise a = new Exercise(); Student b = new Student(); TEST[i] = new Lecture(a,b); } } static void add(Exercise score, Student aStudent) { TEST[i].name = aStudent.name; TEST[i].student_number = aStudent.student_number; TEST[i].scorebox = score.score; i++; } static void avg() { int sum=0; for (int i = 0; i < 6; i++) { sum += TEST[i].scorebox; } avg = sum / 6; } static void max() { int max = 0; int temp = 0; for (int i = 0; i < 6; i++) { if (max < TEST[i].scorebox) { temp = i; max = TEST[i].scorebox; } } max = i; } static void show_kamoku(){ System.out.println("科目:"+kamoku); } static void show(){ Lecture.max(); System.out.println("平均点:"+avg); System.out.println("最高得点者:"+TEST[max]); } static void under_avg(){ Lecture.avg(); System.out.println("平均点を下回った者"); for(int i=0 ; i<6 ; i++){ if(avg > TEST[i].scorebox){ System.out.println(TEST[i]); } } } } class Exercise { int score; Exercise(int score) { this.score = score; } Exercise() { } public String toString() { return " 得点:" + score; } } class Student { String name; String student_number; Student(String student_number,String name ) { this.name = name; this.student_number = student_number; } Student() { } public String toString() { return "学籍番号:" + student_number + " 名前:" + name; } } class ExerciseEvaluation { public static void main(String args[]){ Lecture.kamoku=args[0]; Lecture[] lec = new Lecture[6]; Student Y0 = new Student(args[1],args[2]); Exercise X0 = new Exercise(Integer.parseInt(args[3])); lec[0].add(X0, Y0); Student Y1 = new Student(args[4], args[5]); Exercise X1 = new Exercise(Integer.parseInt(args[6])); lec[1].add(X1, Y1); Student Y2 = new Student(args[7], args[8]); Exercise X2 = new Exercise(Integer.parseInt(args[9])); lec[2].add(X2, Y2); Student Y3 = new Student(args[10], args[11]); Exercise X3 = new Exercise(Integer.parseInt(args[12])); lec[3].add(X3, Y3); Student Y4 = new Student(args[13], args[14]); Exercise X4 = new Exercise(Integer.parseInt(args[15])); lec[4].add(X4, Y4); Student Y5 = new Student(args[16], args[17]); Exercise X5 = new Exercise(Integer.parseInt(args[18])); lec[5].add(X5, Y5); Lecture.show_kamoku(); Lecture.show(); Lecture.under_avg(); } }

  • C シャープ クラスについて

    C#のカテゴリが無く、その他(プログラミング)とどちらにしようか迷ったのですがこちらで質問します。 C#初心者です。今クラスについて勉強しているのですが、不思議に思うことがあるので質問します。 以下のコードは使っている教科書に載っているサンプルコードの一部です。 public class Student { //Data members, data fields, or characteristics private int studentNumber; private string studentName; private int score1; private int score2; private int score3; private string major; //default constructor public Student() { } //constructor with one argument public Student(int sID) { studentNumber = sID; } //constructor with two arguments public Student(int sID, string name) { studentNumber = sID; studentName = name; } //constructor with six arguments public Student(int sID, string name, int s1, int s2, int s3, string maj) { studentNumber = sID; studentName = name; score1 = s1; score2 = s2; score3 = s3; major = maj; } (・・・その後もプロパティコードが続く) Constructorにはクラス名と同じ名前を使うと解釈しているのですが、どうやって識別しているのでしょう? 例えば、Main()内で Student thirdStudentObject = new Student(5432, "Randolph Wonder"); と Student aStudentObject = new Student(1234, "Maria Smith", 97, 75, 87, "CS"); というコードがあるのですが、 Student thirdStudentObject = new Student(5432, "Randolph Wonder"); は public Student(int sID, string name) { studentNumber = sID; studentName = name; }、 Student aStudentObject = new Student(1234, "Maria Smith", 97, 75, 87, "CS"); は public Student(int sID, string name, int s1, int s2, int s3, string maj) { studentNumber = sID; studentName = name; score1 = s1; score2 = s2; score3 = s3; major = maj; } を呼び出しているのですよね? 上記の文では必要なアーギュメントが2個と6個なので数の違いからどのConstructorを使っているのかなんとなく分かりますが、もしも public Student(int sID, string name) { studentNumber = sID; studentName = name; } と public Student(int sID, string SchoolName) { studentNumber = sID; studentName = SchoolName; } などのように同じアーギュメント数もしくは同じデータタイプの場合、どうやって「どのConstructorを使うか」を識別させるのでしょうか? 同一クラス内に同じ数のアーギュメントを求めるものは作ってはいけなかったりするのでしょうか? 長い上に分かりづらい質問ですみません。

  • ArrayListとHashMapを利用する問題について

    『問題』 (1)ArrayListのオブジェクトを生成する。 (2)「何回入力しますか?」と出力し、入力処理を行う。 (3)(2)で入力された回数分、以下の処理を行う。   1)HashMapのオブジェクトを生成する。   2)「名前を入力して下さい。」と出力し、入力処理を行う。 3)「性別を入力して下さい。」と出力し、入力処理を行う。   4)「性別を入力して下さい。」と出力し、入力処理を行う。 5) 1)で作成したHashMapに、それぞれ入力された 名前・年齢・性別を設定する。   6)値を設定したHashMapを(1)で作成したArrayListへ格納する。 (4)ArrayListの件数分、以下の処理を行う。   1)ArrayListより、HashMapを取得する。   2)取得したHashMapより、それぞれ設定されている 名前・年齢・性別を取得する。   3)HashMapより取得した名前・年齢・性別を出力する。 『実行結果』 何回入力しますか? 2 名前を入力して下さい。 iwata 年齢を入力して下さい。 27 性別を入力して下さい。 men 名前を入力して下さい。 hana 年齢を入力して下さい。 21 性別を入力して下さい。 women 名前=iwata 年齢=27 性別=men 名前=hana 年齢=21 性別=women 上記のようなプログラムを書く問題について質問します。 (3)までは自力で書けて実行結果もこの通りになったのですが、 (4)が分からずに、実行結果では値の部分がnullと出力されて しまいました。自分でもこの記述は間違っているというのは感じる のですが、どうしたら値がちゃんと格納されるのか分かりません。 「ArrayListより、HashMapを取得する。」←特にこの部分を どう記述してよいのか・・・ 分かる方、上記の部分の記述方法だけでも構わないので教えて下さい。 『自分で書いたプログラム』 import java.util.*; import java.io.*; public class Sample02{ public static void main(String[] args)throws IOException{ ArrayList list = new ArrayList(); System.out.println("何回で入力しますか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=0; i<num; i++){ HashMap map = new HashMap(); System.out.println("名前を入力して下さい。"); String name = br.readLine(); System.out.println("年齢を入力して下さい。"); String age = br.readLine(); System.out.println("性別を入力して下さい。"); String sex= br.readLine(); map.put("名前", name); map.put("年齢",age); map.put("性別",sex); list.add(name); list.add(age); list.add(sex); } for(int i=0; i<num; i++){ HashMap map = new HashMap(); String name = (String)map.get("名前"); String age = (String)map.get("年齢"); String sex = (String)map.get("性別"); System.out.println("名前=" + name); System.out.println("年齢=" + age); System.out.println("性別=" + sex); } } }

    • ベストアンサー
    • Java
  • 初心者Javaの件。

    いつも大変お世話になりありがとうございます。 次の2つのコードは関係があるのでしょうか? 2つを合体させないとプログラムがエラーになるのでしょうか? 私は合体させないとプログラムが成立しないと思います。 アドバイスのほど宜しくお願い申し上げます。 コード1 public class Person { private int age; private double weight; private double height; public Person(int age, double weight, double height) { this.age = age; this.weight = weight; this.height = height; } public void show() { System.out.println("年齢は" + age + "体重は" + weight + "身長は"+ height +"です。" ); } } コード2 import java.io.BufferedReader; public class Sample3 { { public static void main(String args[]) throws Exception { person p[]; System.out.println("人数を入力してください。"); BufferedReader br = new BufferedReader(new inputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); p = new Person[num]; for(int i=0; i<num; i++) { } System.out.println("年齢を入力してください"); str = br.readLine(); int age = Integer.parseInt(str); P = new Person[num]; for(int i=0; i<num; i++){ System.out.println("年齢を入力してください"); str = br.readLine(); int age = Intger.parseInt(str); System.out.println("体重を入力してください"); str = br.readLine(); double weight = Double.parseDouble(str); System.out.println("身長を入力してください"); str = br.readLine(); double height = Double.parseDouble(str); p[i] = new person(age, weight, height); } for(int i=0; i<num; i++) { p[i].show(); } } }

    • ベストアンサー
    • Java
  • ButteflyPersistenceの主キー

    現在O/RマッパーでButteflyPersistenceを使っているのですが、主キーがうまくマッピングできていないらしく更新・削除の処理をすると”No primary key columns for object mapping”というエラーが発生します。主キーを割り当てる方法がございましたらご教授ください。 設定したファイルの内容は以下の通りです。 DBはH2を使っています。 CREATE TABLE user ( ID Identity, NAME varchar(255) default NULL, AGE Integer (2), PRIMARY KEY (ID) ) Userクラス import com.jenkov.db.itf.mapping.AClassMapping; import com.jenkov.db.itf.mapping.AGetterMapping; import com.jenkov.db.itf.mapping.ASetterMapping; @AClassMapping(mappingMode="modify", tableName="user") public class User { @SuppressWarnings("unused") private static final long serialVersionUID = 1L; private int id; private int age; @AGetterMapping(columnName="ID",databaseGenerated=true) public int getId() { return id; } @ASetterMapping(columnName="ID") public void setId(int id) { this.id = id; } private String name; @AGetterMapping(columnName="NAME") public String getName() { return name; } @ASetterMapping(columnName="NAME") public void setName(String name) { this.name = name; } @AGetterMapping(columnName="AGE") public int getAge() { return age; } @ASetterMapping(columnName="AGE") public void setAge(int age) { this.age = age; } }

  • JavascriptとServletの連携方法

    現在学習目的で作成しているプログラムがうまくいきません。 生年月日を入力し、計算ボタンを押すと年齢が表示されるというものです。 ですがボタンを押してもなにも起きません。 いろいろなサイトを手本に手当たり次第に改造修正実行しているのですが、年齢が返ってきません。以下にソースコードを提示いたします。ご質問、ご回答お願い致します。 ※学習目的であり、実務とはなんら関係ありません。遠回りに無駄な機能を実装しようとしていることは分かっておりますが、この一連の流れがどのように動くのかを知りたいです。なので「javascriptだけで実装できるじゃん」等思われるかもしれませんが、どうかこの形を維持しての実装方法を提示していただければと考えております。 --NenreiJSP.jsp-- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <input type="text" id="year"><br> <input type="button" id="button" value="計算" onclick="get()"><br> <input type="text" id="age"> <script type="text/javascript" src="Nenrei.js"></script> </body> </html> --NenreiServlet.java-- package Test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fasterxml.jackson.databind.ObjectMapper; @WebServlet("/NenreiServlet") public class NenreiServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String Year = request.getParameter("year"); String year = Year.substring(0,4); String month = Year.substring(4,6); String day = Year.substring(6); Nenrei nenrei = new Nenrei(); String age = nenrei.AGE(year, month, day); JSON Json = new JSON(); Json.age = age; ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(Json); response.setContentType("application/json"); response.setHeader("Cache-Control", "nocache"); response.setCharacterEncoding("utf-8"); // JSONを戻す PrintWriter out = response.getWriter(); out.print(json); } } --Nenrei.java-- package Test; import java.util.Calendar; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class Nenrei { public String AGE(String year, String month, String day) throws JsonProcessingException { int Year = Integer.parseInt(year); int Month = Integer.parseInt(month); int Day = Integer.parseInt(day); //現在の年月日 Calendar calendar = Calendar.getInstance(); int yearToday = calendar.get(Calendar.YEAR); int monthToday = calendar.get(Calendar.MONTH); int dayToday = calendar.get(Calendar.DAY_OF_MONTH); //年齢を計算 int age; age = yearToday - Year; if (monthToday < Month) { --age; } else if (monthToday == Month) { if (dayToday < Day) { --age; } } ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(age); return json; } } --Nenrei.js-- function get(){ document.getElementById("year"); xhr = new XMLHttpRequest(); xhr.onload = setResponseText; xhr.open("GET", "/ApiTest/NenreiServlet?year=" + year,true); xhr.send(); } function setResponseText(){ document.getElementById("age").innerHTML = xhr.responseText; }

    • ベストアンサー
    • Java