Avatar billede jwulff Nybegynder
29. maj 2008 - 12:00 Der er 6 kommentarer og
1 løsning

SQL forespørgsel og resultat

Hej Exp,

Sidder med en opgave hvor vi skal foretage en række SQL udtræk, men er lidt usikker på hvorvidt min SQL sætning er korrekt.

SQL sætning:

SELECT regionnavn, Count(*) AS Ordre
FROM Region r, PostnrBy p, Kunder k
WHERE k.postnr = p.postnr AND p.regionNr = r.regionNr
GROUP BY r.regionNr

Resultatstabel:

Regionnavn    |  Ordre
Sydjylland          3
Midtjylland        9
....

Relationelle skemaer: (PK: primær nøgle, # = Fremmednøgle)

Kunder(PK kundeNr: Integer, navn: String, adresse1: String, adresse2: String, #postnr: Integer, telefon: Integer, mobil: Integer, fax: Integer, email: String, kreditvurdering: Integer, rabat: Integer)

PostnrBy(PK postnr: Integer, by: String, #regionNr: Integer)

Regioner(PK regionNr: Integer, #postnr: Integer, regionnavn: String)

Håber ovenstående gir mening :)

/Jacob
Avatar billede erikjacobsen Ekspert
29. maj 2008 - 12:14 #1
Den er OK. Men

1) Hvad laver et postnummer i Regioner-tabellen?

2) Og så er et postnummer egentlig ikke et tal, men en tekststreng. Men det er en anden sag ;)
Avatar billede jwulff Nybegynder
29. maj 2008 - 12:17 #2
Pga. regioner er vel delt op på baggrund af postnumre? - Så hvis man på et senere tidspunkt flytter et postnummer til en anden region skal man ikke ind og ændre for meget?

Postnummer tekststreng - er det pga. det kan hedde DK8000 fx?
Avatar billede jwulff Nybegynder
29. maj 2008 - 12:41 #3
hov, det er egentlig også antal ordre jeg skal ind og hente. Der kommer der endnu et skema i spil:

Ordre(ordreNr: Integer, kundeNr: Integer, medarbejderNr: Integer, notes: String, prioriteringsgrad: Integer )

Udvidelsen betyder vel bare at SQL sætningen skal lyde noget alla:

SELECT regionnavn, Count(*) AS Ordre
FROM Region r, PostnrBy p, Kunder k, Ordre o
WHERE k.kundeNr = o.kundeNr AND k.postNr = p.postNr AND p.regionNr = r.regionNr
GROUP BY r.regionNr

postNr ændret til String ;)
Avatar billede erikjacobsen Ekspert
29. maj 2008 - 15:08 #4
Der er vist postnumre, der hedder "0800" i Danmark. Generelt i verden består de heller ikke af cifre. Og endelig vil du aldrig lægge postnumre sammen.

Jeg kan stadig ikke se hvad et postnummer laver i regioner-tabellen.

Ellers er din SQL vist ok.
Avatar billede jwulff Nybegynder
30. maj 2008 - 09:42 #5
Super - mange tak. Smid et svar!
Avatar billede erikjacobsen Ekspert
30. maj 2008 - 09:47 #6
Jeg samler slet ikke på point, tak.
Avatar billede jwulff Nybegynder
12. februar 2010 - 14:07 #7
/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