Gjest Slettet-Pqy3rC Skrevet 15. november 2012 Del Skrevet 15. november 2012 Hallo; Jeg er ingen kløpper i SQL og har nå kommer opp i noe jeg ikke riktig vet hvordan jeg skal løse med Transact SQL (SQL Server). La oss si vi har to tabeller med to felter i hver (ident og tekst): (Jeg har ikke konstruert disse relasjonene så skyld ikke på meg!) Tabell A) 01 Rad1 01 Rad2 02 Rad3 02 Rad4 02 Rad5 Tabell B) 01 Rad6 01 Rad7 01 Rad8 02 Rad9 Okey... Ønsket er å hente ut kombinasjoner av tekst feltene i begge tabellene. Den første posten i Tabell B er; 01 Rad6 Den har ident = 01 og Tekst = Rad6. Denne skal vises det antall kombinasjoner hvor ident (dvs. verdien 01) også finnes som ident i Tabell A. Hvilket betyr postene; 01 Rad1 01 Rad2 ... som betyt to poster/linjer i resultatet. Ønsket resultat for post 1 i tabell B blir da altså; Rad1 Rad6 Rad2 Rad6 Ønsket resultat totalt blir; Rad1 Rad6 Rad2 Rad6 Rad1 Rad7 Rad2 Rad7 Rad1 Rad8 Rad2 Rad8 Rad3 Rad9 Rad4 Rad9 Rad5 Rad9 Hvordan kan jeg få til noe sånt ? Lenke til kommentar
quantum Skrevet 15. november 2012 Del Skrevet 15. november 2012 dette løser du med en helt triviell join select a.tekst, b.tekst from public."TableA" a inner join public."TableB" b on a.ident = b.ident order by b.tekst, a.tekst Lenke til kommentar
Gjest Slettet-Pqy3rC Skrevet 15. november 2012 Del Skrevet 15. november 2012 (endret) Takk. Fant det ut selv etterhvert, men måtte lage noen enkle test tabeller. Det var vanskelig å kontrollere resultatet på live-data. Det er så sjelden jeg er borti tabeller hvor nøkkel kan gi flere enn ett treff at jeg ikke huska at join automatisk "dupliserer" resultatet i flere records. Mildt sagt merkelig oppbygning i databasen jeg jobber med, må ha flere UNION's og andre rariteter for å få frem ønsket resultat. Det virker som hele greie at konstrert med henblikk på færrest mulig tabeller og lagring av minst mulig data (helt ulik betydning av forskjellige poster i samme tabell, felter inneholder koder som er heller dårlig dokumentert etc). Småfrustrert, egentlig burde vel noen som driver mer med SQL enn meg gjøre dette. Om 6 mnd kommer jeg antagelig ikke til å skjønne en dritt av det jeg har kokkelert sammen i dag. Meh! Nåvel... takk igjen. Endret 15. november 2012 av Slettet-Pqy3rC Lenke til kommentar
quantum Skrevet 15. november 2012 Del Skrevet 15. november 2012 (endret) Det er så sjelden jeg er borti tabeller hvor nøkkel kan gi flere enn ett treff at jeg ikke huska at join automatisk "dupliserer" resultatet i flere records. Mildt sagt merkelig oppbygning i databasen jeg jobber med, Skjønner at databasen er forvirrende, for det er den mest forvirrede beskrivelsen av å ville joine to tabeller jeg har sett noen gang :-) Når du sier at nøkkel kan gi flere treff, så vet jeg ikke helt hva du mener med det, men pk kan aldri gi flere treff. Hvis disse tabellene i det heletatt har pk så er det ihvertfall ikke feltet ident. Hvis du mener fremmednøkkel kan gi flere treff, så er det helt vanlig, dvs. 1:n-relasjon. «Færrest mulig tabeller» og «lagring av minst mulig data» (i betydningen minst mulig duplisert informasjon) er motstridende, jo færre tabeller, desto mer data vil måtte dupliseres, og omvendt. Altså lav vs. høy grad av normalisering. Hvis den som har laget skjemaet har prøvd å få til begge deler kan det fort ha blitt ganske corny ... Endret 15. november 2012 av quantum Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå