Avatar billede hotshot Nybegynder
09. april 2001 - 13:12 Der er 5 kommentarer og
1 løsning

Join af to tabeller

Jeg skal have joined to tabeller ala dette eksempel.

set term !! ;
create procedure HentBrugere returns (PersonId varchar(15), Fornavn varchar(30), Efternavn varchar(30), Tlfnr varchar(25),
                                      Mobilnr varchar(25), Email varchar(50), Orgnavn varchar(40), Brugernavn varchar(15),
                      Adgangskode varchar(15), Brugerniveau varchar(15), Titel varchar(20),
                      Afdeling varchar(20), Memo varchar(32000), Adresse varchar(30),
                      Postnr varchar(10), Bynavn varchar(30), Tlfnr varchar(25))
as
begin
  select * from Person left outer join Bruger
  on Bruger.PersonId = Person.PersonId
  order by PersonId DESC into
        :PersonId, :Fornavn, :Efternavn, :Tlfnr, :Mobilnr, :Email, :Orgnavn, :Brugernavn, :Adgangskode,
    :Brugerniveau, :Titel, :Afdeling, :Memo, :Adresse, :Postnr, :Bynavn, :Tlfnr;
end !!

Men når jeg kører den, får jeg følgende fejl:

count of column list and variable list do not match

Jeg har prøvet lidt af hvert, men intet virker.
Hvad er galt.
Avatar billede martinlind Nybegynder
09. april 2001 - 13:20 #1
TlfNr står der 2 gange
Avatar billede martinlind Nybegynder
09. april 2001 - 13:23 #2
Det var ikke det kunne jeg se, men det er muligvis fordi du selecter * , og har flere colums
i din table en de 17 du har valgt ud i din Retuns.
Avatar billede hotshot Nybegynder
09. april 2001 - 13:28 #3
Jeg mener at en left outer join gør, at jeg skal have PersonId med to gange, en for hver tabel.
Har det noget på sig. Tlfnr skal være der to gange, da det ikke er det samme.
Avatar billede martinlind Nybegynder
09. april 2001 - 13:33 #4
Ja, det kunne godt være fordi du ikke har den med to gange, men du skal nok prøve at lave en test Select * for at se hvilke kolonner du får med tilbage, så ved du hvilke der skal stå i din return

  select * from Person left outer join Bruger
  on Bruger.PersonId = Person.PersonId
  order by PersonId DESC

/Martin
Avatar billede hotshot Nybegynder
09. april 2001 - 13:40 #5
Hej Martin
Det var en god ide du kom med, da jeg fandt ud af at Interbase går ind og kalder den sidste PersonId-kolonne PersonId1.
Da jeg brugte det, gik det godt
TAK

Thomas
Avatar billede martinlind Nybegynder
09. april 2001 - 13:44 #6
Selv tak, Test Select\'s er altid en god ide, har jeg erfaret *S*, man bliver lige pludslig meget klogere når man ser resultatet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester