Avatar billede rallylarsen Nybegynder
06. maj 2009 - 18:29 Der er 3 kommentarer og
1 løsning

SQL forespørgelse

Hej eksperter

Jeg har følgende tables :

create table ERROR_file(
    isendid varchar2(40) primary key,
    filename varchar2(80) not null
);

create table ERROR_msg(
    isendid varchar2(40) references ERROR_file,
    errortxt varchar2(255) not null
);

create table log(
    isendid varchar2(40) references ERROR_file,
    afs_adrs varchar2(20) not null,
    mod_adrs varchar2(20) not null,
    unb_cntl varchar2(40) not null,
    fys_user varchar2(40) not null
);

Prøver at finde en SQL forespørgelse der tager alt fra ERROR_file, men kun en enkelt række fra de andre tables,
da der godt kan være flere forskellige errormesages (fra error-msg).
DVS. jeg kun ønsker et result pr. row fra ERROR_file.

Er der nogen der kan hjælpe =) ?
Avatar billede arne_v Ekspert
06. maj 2009 - 18:40 #1
Og hvis der er flere raekker i ERROR_msg med et matchende id, hvilken raekke skal saa vaelges?
Avatar billede rallylarsen Nybegynder
06. maj 2009 - 18:59 #2
bare den første !
Avatar billede steber Nybegynder
06. maj 2009 - 19:25 #3
Kan gøres på mange måder, jeg har valgt at vise denne:

Har ikke lavet det færdigt, - så er der også lidt at tænke over - hehe.

Kun de første to tabeller er joinet. Kun én række tages fra error_mrg pr id:
SELECT sub.*
  FROM (SELECT ef.*,
              em.errortxt,
              row_number() OVER (PARTITION BY em.isendid ORDER BY em.errortxt) rownumber
          FROM error_file ef,
              error_msg  em
        WHERE ef.isendid = em.isendid
        ) sub
WHERE sub.rownumber = 1
Avatar billede rallylarsen Nybegynder
15. oktober 2009 - 20:07 #4
lukker
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