Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Subselect in SELECT
Ana C. Dent schrieb:
> Matthias Matker <kernkoenig_at_arcor.de> wrote in > news:45b24ffe$0$5727$9b4e6d93_at_newsspool3.arcor-online.net: >
>>> Matthias Matker wrote: >>>> Hello together, >>>> >>>> SELECT >>>> persons.name >>>> ( SELECT COUNT(*) amount FROM person_cds WHERE ( >>>> person_cds.pname= persons.name)) >>>> FROM >>>> persons >>>> WHERE ( amount< 280) >>>> ORDER by persons.name; >>>> EXIT; >>>> >>>> I want the name of the persons ( name is primary key of persons), >>>> which have fewer cds than 280. >>>> >>> The preferred way in SQL to express your desired result is something >>> like: >>> >>> SELECT P.name, count(*) AS no_of_cds >>> FROM persons P, person_cds PC >>> WHERE P.name = PC.pname >>> GROUP BY P.name >>> HAVING count(*) < 280 >>> ORDER BY P.name >>>
>>
>>
>>
>>
>>>> WHERE ( amount< 280)
>> SELECT
>> persons.name
>> ( SELECT COUNT(*) amount FROM person_cds WHERE (
>> person_cds.pname= persons.name))
>> FROM
>> persons
>>
>>
> > SELECT persons.name, (SELECT COUNT(*) FROM person_cds > WHERE ( person_cds.pname= persons.name)) AMOUNT > FROM > persons > WHERE ( amount< 280) > ORDER by persons.name;
Sorry, this doesn't work, the same error occurs.
Matze Received on Sat Jan 20 2007 - 13:57:46 CST