Avatar billede egdk84 Nybegynder
11. marts 2007 - 10:59 Der er 4 kommentarer

Find mindste pris/værdi samt tilhørende varenummer

Jeg har 3 prislister fra 3 forskellige leverandøre og en krydsreferanceliste der kobler mit varenummer til leverandørernes varenummer. Mit varenummer kan altså købes 3 forskellige steder, og jeg ønsker at købe det billigste sted og bestille med denne leverandørs varenummer.

VARENUMMER KRYDSREFERANCE:
Mit varenr.    levA  levB  levC
  M1            A1    B1    C1
  M2            A2    B2    C2
osv..   

HEREFTER PRISLISTER FRA LEVERANDØRE:

LEV A
A1  KR. 29,75
A2  KR. 19,25

LEV B
B1  KR. 28,25
B2  KR. 21,25

LEV C
C1  KR. 30,25
C2  KR. 18,75

Det ønskede resultat skulle gerne se således ud:

mit nr.  levrandør  lev nr.    lev. pris
  M1        LEV B      B1      kr. 28,25
  M2        LEV C      C2      kr. 18,75
Avatar billede mugs Novice
11. marts 2007 - 13:08 #1
Opret en tabel med alle leverandører og send data fra dine leverandører ind i den. Derefter en forespørgsel der joiner leverandørerne.
Avatar billede terry Ekspert
11. marts 2007 - 14:35 #2
isnt this the same question you have open here?
http://www.eksperten.dk/spm/757238

You can close the previous questioj by placing an answer and accepting it yourself, that way you get your points back too :o)

As far as I can see this is a mnay to many relationship so you should have three table.
You might only have 3 suppliers at the moment but you could get other later and that would require alterations to your current tables.

One table for "vare"
Varenr
VareText
.
.

One Table for "leverandøre"
LevNr
LevNavn
.
.

One table for "Leverandøre priser"
VareNr
LevNr
Pris
.
.

Then it should be quite simple to make a query which will give you what you want. It will also allow you to add new suppliers without further changes to the tables.
You could also add a date field to the "Leverandøre priser" table so that you can find the newest price, unless of course you only want to have only the last price.
Avatar billede Slettet bruger
11. marts 2007 - 20:37 #3
Du kan sikkert lave det nemmere, men her er en løsning ved hjælp af 3 forespørgsler:

AllePriser:
SELECT KrydsTab.MitVareNr, LevA.VareNr, LevA.Pris, "A" AS Lev
FROM KrydsTab INNER JOIN LevA ON KrydsTab.LevA = LevA.VareNr
GROUP BY KrydsTab.MitVareNr, LevA.VareNr, LevA.Pris, "A"
UNION
SELECT KrydsTab.MitVareNr, LevB.VareNr, LevB.Pris, "B" AS Lev
FROM KrydsTab INNER JOIN LevB ON KrydsTab.LevB = LevB.VareNr
GROUP BY KrydsTab.MitVareNr, LevB.VareNr, LevB.Pris, "B"
UNION SELECT KrydsTab.MitVareNr, LevC.VareNr, LevC.Pris, "C" AS Lev
FROM KrydsTab INNER JOIN LevC ON KrydsTab.LevC = LevC.VareNr
GROUP BY KrydsTab.MitVareNr, LevC.VareNr, LevC.Pris, "C";

MindstePriser:
SELECT AllePriser.MitVareNr, Min(AllePriser.Pris) AS MinOfPris
FROM AllePriser
GROUP BY AllePriser.MitVareNr;

Resultat:
SELECT AllePriser.MitVareNr, AllePriser.VareNr, AllePriser.Pris, AllePriser.Lev
FROM AllePriser INNER JOIN MindstePriser ON (AllePriser.Pris=MindstePriser.MinOfPris) AND (AllePriser.MitVareNr=MindstePriser.MitVareNr);

!~)
Avatar billede Slettet bruger
11. marts 2007 - 20:39 #4
P.s. mine tabeller:

KrydsTab:
MitVareNr
LevA
LevB
LevC

LevA:
VareNr
Pris

LevB:
VareNr
Pris

LevC:
VareNr
Pris
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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