ich einen Zweifel an einer inneren Abfrageinnere Abfrage Ausgabe
Schema haben:
DEPARTMENT
(DEPTNUM, descrip, InstName, deptname, Bundesland, Postleitzahl)ACADEMIC
(acnum , deptnum *, famname, givename, Initialen, Titel)PAPER
(panum, Titel)AUTHOR
(Panum, acnum **)FIELD
(FeldNum, id, title)INTEREST
(FeldNum, acnum **, descrip)
Ich habe die Ausgabe in diesem Format:
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);
Mit den Feldern in der SELECT-Anweisung der äußeren Abfragen möchte ich aber auch die count(*)
als no_of_papers
in der Ergebnismenge.
Ich habe mir schon seit einiger Zeit den Kopf gebrochen.
Warum nicht 'join' an der inneren Abfrage, anstatt sie mit in eine 'Where'-Klausel? – bouncyball
Für welches RDBMS ist das gedacht? Bitte fügen Sie ein Tag hinzu, um anzugeben, ob Sie 'mysql',' postgresql', 'sql-server',' oracle' oder 'db2' verwenden - oder etwas ganz anderes. –