Avatar billede royalexport Nybegynder
26. maj 2004 - 10:05 Der er 4 kommentarer og
1 løsning

Hjælp til forespørgsel efter der normaliseret.

Efter 3. normalform er der kommet en ny tabel ud fra tabellerne Kunder og Leverandører, nemlig ByPostNr. Tabellen ByPostNr inderholder postnr, by og region. Region bliver bestemt ud fra, hvilket postnr man har. Mit spørgsmål lyder på, hvordan man laver en forespørgsel, som sammenligner om Kunden bor i samme region som leverandøren? Problemet er, at tabellerne Kunder og Leverandører refererer til samme tabel, nemlig byPostNr til at få oplyst, hvilken region de bor i. Man skal vel kigge på, hvilket postnr kunden har og derudfra finde frem til regionen. Det samme med leverandør. Til sidst skal de sammenlignes.


CREATE TABLE Kunder (
        kNavn CHAR (100) NOT NULL,
    kVej CHAR (200) NOT NULL,
        kHusnummer INT NOT NULL,
    kPostNr CHAR (4) NOT NULL,
    kKundeID CHAR (5) NOT NULL,
    PRIMARY KEY (kKundeID),
    CONSTRAINT fk_kunde_byPostNr FOREIGN KEY (kPostNr) REFERENCES ByPostNr,
    );

CREATE TABLE Leverandører (
        levFirmaNavn CHAR (100) NOT NULL,
    levVej CHAR (200) NOT NULL,
        levHusnummer INT NOT NULL,
    levPostNr CHAR (4) NOT NULL,
    LeverandørID CHAR (5) NOT NULL,
    PRIMARY KEY (leverandørID),
    CONSTRAINT fk_leverandør_byPostNr FOREIGN KEY (levPostNr) REFERENCES ByPostNr
    );

CREATE TABLE ByPostNr (
        bPostNr CHAR (4) NOT NULL,
        bByNavn CHAR (100) NOT NULL,
    bRegion TINYINT NOT NULL,
    PRIMARY KEY (bPostNr),
          CONSTRAINT regiondel CHECK (bRegion BETWEEN 1 AND 8)
    );
Avatar billede trer Nybegynder
26. maj 2004 - 12:08 #1
du kan refererer samme tabel flere gange med et alias

a la

select *
from kunder k inner join bypostnr b1
on k.kpostnr = b1.postnr
inner join bypostnr b2
on b1.bregion = b2.bregion
inner join leverandører l
on l.levpostnr = b2.postnr
Avatar billede royalexport Nybegynder
26. maj 2004 - 18:04 #2
Tak for hjælpen trer, det var lige det jeg skulle bruge.
Avatar billede royalexport Nybegynder
26. maj 2004 - 18:07 #3
Jeg skal også lige have givet dig nogle point.
Avatar billede trer Nybegynder
26. maj 2004 - 18:15 #4
Ok, et svar herfra - og pfh tak for points.
Avatar billede trer Nybegynder
26. maj 2004 - 18:15 #5
heh, så prøver vi igen :-)
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