スキーマ:
DEPARTMENT
(DEPTNUM、DESCRIP、instnameの、DEPTNAME、状態、郵便番号)ACADEMIC
(acnum 、deptnum *、famname、givename、イニシャル、タイトル)PAPER
(panum、タイトル)AUTHOR
(パナム、acnum **)FIELD
(fieldnum、ID、タイトル)INTEREST
(fieldnum、acnum **、DESCRIP)
私はこの形式の出力を持っています:
select
acnum, title, givename, famname
from
academic a
where
a.acnum in (select count(*) as no_of_papers, acnum
from author auth
join paper p on auth.panum = p.panum
group by acnum
having count(*) < 20)
union
select
acnum, title, givename, famname
from
academic a
where
a.acnum not in (select count(*) as no_of_papers, acnum
from author auth
join paper p on auth.panum = p.panum
group by acnum);
しかし、外部クエリのselect文のフィールドとともに、count(*)
を結果セットにno_of_papers
とします。
私はかなりの時間頭を壊しています。
内側のクエリになぜ 'join'ないのではなく、それを使用して'where'節? – bouncyball
これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –