私はDBMSクエリを練習していますが、次のSQLクエリに悩まされています:Sレベルを持つすべての生徒の名前を取得しようとしているすべてのコースにsqlを書き込みます。
Sグレードのすべての生徒の名前を取得しようとしているすべての受講者の名前を取得しますか?私のテーブルとコードが
続いている
create table COURSE
(
cId int primary key,
cName varchar(30),
credits int not null
);
create table student
(
usn int primary key,
sname varchar(20),
dno int
);
create table RESULT
(
SUsn int,
CCode int,
Grade char,
primary key(SUsn,CCode)
);
コード:
select S.sname
from student S inner join result R on S.usn = R.susn
where grade = 'S'
group by S.usn,S.sname
having count(*) in (
select count(*) from result
group by susn
);
は私が知っているかもしれないところ私が間違っているつもりですか?私を助けてください。
グレードがヌル可能(ヌルでないと宣言されていない)の場合は、ヌルのチェックを追加する必要があります。 – mathguy
@ GordonLinoffこのSQLを大文字と小文字の区別なく使用する方法はありますか? –
あなたは事を複雑にすることはできますが、複雑になります。この機会に新しいものを学ぶ。 [** CASE **](http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm)sintaxisを確認してください。 –