Gå til innhold

[Løst] Select og ...æh... "for each" eller noe sånt.


Gjest Slettet-Pqy3rC

Anbefalte innlegg

Gjest Slettet-Pqy3rC

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
Videoannonse
Annonse
Gjest Slettet-Pqy3rC

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 av Slettet-Pqy3rC
Lenke til kommentar

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 ... :confused:

Endret av quantum
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...