05. maj 2003 - 16:06Der er
10 kommentarer og 1 løsning
en lille SQL problem.
Jeg mangler en lille stump SQL. Jeg har to tabeller.
tabel a. w1,w2,...,w50
tabel b. w1,w2,...,w50
Der er i hver af tabellerne en række "sætninger". Feks. tabel a (første linie) w1=Dette , w2=er ,w3=et ,w4=eksempel
tabel b (første linie) w1=Et, w2=eksempel ,w3=er, w4=godt ,w5=at ,w6=have.
Jeg ønsker nu en sql som finder de sættninger som har mere end to ord til fældes. F.eks. har de to første linier i eksemplet 3 fælles ord. (Det er ikke kun w1=w1 and w2=w2.. som skal gælde)
Det er en dum måde at organisere sine data på. I stedet for en "bred" tabel med 50 felter, skal du lave en "høj" tabel med 2-3 felter og optil 50 rækker. Ellers kan du slet ikke få SQL til at hjælpe dig med det.
Og selv så tvivler jeg umiddelbart på du kan gøre det kun i Sql...
Du er meget hurtig til at sige at det ikke kan lade sig gøre... Jeg er nu ikke sikker på at du har ret. Hvad er dit argument for at det ikke kan lade sig gøre?
Jeg tror jeg har fundet en løsning selv som består af en SQL sætning. Jeg prøver den lige af i morgen og hvis den fungere sætter jeg den på. (O: Man kan alt med SQL
Jeg har lavet to lister, liste a. Nr navn liste b. nr navn
hvor navnet er delt op på feks. gammel obs. nr=7 w1=jakob w2=madsen vil nu hedder nr=7 navn=jakob n=7 navn=madsen
Kode kommer så til at hedde (den er ikke helt færdig):
select distinct kundenr,nr from kunder3 as ydreK,terror2 as ydreT where 2 in (select distinct count(*) from kunder3 as indreK,terror2 as indreT where ydreK.kundenr=indreK.kundenr and ydreT.nr=indreT.nr and indreK.w1=*indreT.w1 );
koden er kommet til at se lidt anderledes ud. proc sql; create table mulige as select distinct kundenr,nr from kunder3 as ydreK,terror2 as ydreT having (select distinct count(*) from kunder3 as indreK,terror2 as indreT where ydreK.kundenr=indreK.kundenr and ydreT.nr=indreT.nr and indreK.w1=*indreT.w1 )>=2;
Hvis der er nogen som kan komme med et optimerings forslag til denne kode vil jeg godt give point for dette.
Synes godt om
Ny brugerNybegynder
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.