Operand should contain 1 column(s)

Status
Niet open voor verdere reacties.

hulp nodig

Nieuwe gebruiker
Lid geworden
3 apr 2009
Berichten
1
Hallo beste mensen ik ben hier voor de eerste keer omdat ik echt uw hulp nodig heb na dat ik het zelf geprobeerd heb.

Ik zit met de volgende probleem:Operand should contain 1 column(s)

Ik plaats hieronder de query die ik heb:

select p.pres_name,p.birth_yr
from president p,election e
where p.pres_name in
(select distinct candidate, min(election_year) from election
where p.pres_name = e.candidate
group by candidate )


Uitleg : ik probeer het volgende te weten te komen de naam en geboortejaar van de president die als kandidaat aan een verkiezing heeft deelgenomen met het door hem behaalde stemmen, op het moment dat zij voor de eerste keer aan de verkiezing heeft deelgenomen.


hieronder de 2 tabellen die ik nodig heb:



PRESIDENT = ( president
pres_name: CHAR(20), naam van de president
birth_yr: NUMBER(4), geboortejaar
yrs_serv: NUMBER(2), aantal dienstjaren
death_age: NUMBER(2), leeftijd bij overlijden
party: CHAR(10), partij waartoe behorend
state_born: CHAR(15) staat waarin geboren
);


ELECTION = verkiezingsuitslag
(election_year: NUMBER(4), verkiezingsjaar
candidate: CHAR(20), verkiezingskandidaat
votes: NUMBER(3), aantal behaalde stemmen
winner_loser_indic: CHAR(1) winnaar(W) of verliezer(L)
);


ik probeer de vraag te beantwoorden doormiddel van een subquery met synchronisatie.

Ik heb niet de oplossing in code van u nodig , want wil het zelf leren maar wat is betekenis van mijn die error code?
 
De fout betekend dat je een operatie wilt doen die 1 argument nodig heeft, maar dat je er meerdere geeft.
Het probleem zit hem hier:

select p.pres_name,p.birth_yr
from president p,election e
where p.pres_name in
(select distinct candidate, min(election_year)
from election
where p.pres_name = e.candidate
group by candidate )

Het statement 'IN' accepteert een lijst die er zo uit ziet:
IN ( 1, 2, 3, 4 )

Maar omdat je 2 dingen selecteerd in je subquery, doe jij eigenlijk dit:
IN ( ( 1, 2 ), ( 3, 4 ), ( 5, 6 ) )

En dat betekend iets heel anders... het is in elk geval niet wat jij wilt denk ik :)

Probeer je subquery eens zo aan te passen dat je maar 1 veld selecteerd, dan zou hij wel uit moeten voeren.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan