webForumDet fria alternativet

Kalkyleringsproblem (SQL/MySQL)

3 svar · 1 121 visningar · startad av Jorgen77

Jorgen77Medlem sedan nov. 20113 inlägg
#1

Hej

Jag har en skoluppgift där frågan som jag ska besvara är:

"Vad kostar i material att tillverka artikel XXXX".

Jag jobbar med följande tabeller:

1. Leverera (Inkopningsantal, Inkopningsmatt, Inleveransdatum, Inkopspris, LID(FK), IID(FK) )
2. Ingrediens ( Ingrediensnamn, Antal_i_lager, IID(PK) )
3. Ingar_i (Basvaromangd, Mattenhet, IID(FK), RID(FK) )
4. Recept (Rnamn, Pmangd, Ttid, Ruppdatering, RID(PK) )
5. Ger (RID(FK) BANR(FK) )
6. Bakartikel (Bnamn, Antal_tillverkade, Bpris, BANR(PK) )

Jag tror behöver använda följande kalkylering: Ikopspris(Tabell: Leverera) / Inkopningsantal (Tabell: Leverera) * Basvaromangd (Ingar_i: Basvaromangd)

Ett ytterligare problem är att inköpningsantalet och inköpningspriset utgår ifrån en kvanitetmassa. Därför måste denna uträkning göras på varenda rad.
Så här skulle de kunna se ut för bakartikeln "cheesecake":

Bnamn..........ingrediensnamn...Inköpspris........ ..inköpningsantal..........basvaromängd(för receptet)
Cheesecake...Ägg..................200............. .....100..........................5 (st)
cheesecake...socker...............100............. .....1000(dl)...................2 (dl)

För att få fram vad ett ägg kostar borde man ta inköpspris(200) / inköpningsantal(100) * basvaromängd(5).

Det var tre år sedan jag läste om SQL och detta är en fråga som jag har haft släpandes. Naturligtvis kräver jag inte att ni ge mig en fullt fungerande kod men jag känner att jag behöver vägledning för denna uppgift. Kan meddela att jag inte heller för tre år sedan va någon "hajjare" på sql.

Om jag har formulerat mig otydligt så säg gärna till

Jorgen77Medlem sedan nov. 20113 inlägg
#2

Jag vill även passa på att tillägga att det finns 4 olika bakartiklar med olika ingredienser. Dessutom så finns det ingen prislista utan jag måste utgå ifrån de kvantiteter som står vid "inköpspris".

Så jag måste välja en bakartikel (tex cheesecake) sen måste jag få fram vad cheesecaken innehåller och hur mkt av varje basvaromängd den ska ha. Det är just detta som försvårar för mig. Hade de endast gällt att multiplicera/dividera olika värden från olika tabeller hade det inte varit något problem.

Jorgen77Medlem sedan nov. 20113 inlägg
#3

Jag kom på en kod som ger rätt resultat. Tycker ni koden ser rätt ut?

Select rnamn, sum(ipriser / iantal * bmangd) as Tillverkningskostnad FROM recept r, ingar_i ii, ingrediens i, leverera le, WHERE le.iid=i.iid AND i.iid=ii.iid AND ii.rid=r.rid AND rnamn="Cheesecake" order by ipriser;

@ndersMedlem sedan juni 200026 914 inlägg
#4

Jag skulle vilja säga: om den fungerar så är den rätt. :)

Men du borde ha med GROUP BY rnamn.

Mvh

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb