newbier Geplaatst: 18 oktober 2007 Geplaatst: 18 oktober 2007 Hoi, Ik probeer al een tijdje uit te vogelen hoe ik in mijn database een correcte prijzberekening kan bewerkstelligen. Als er een object verhuurd wordt dan moet er de correcte prijs worden berekend. Als een bv object met de objectcode A worden verhuurt kost hij voor 3 dagen 10,00 euro. Heeft iemand een tip hoe ermee te beginnen? Ik heb een bestandje bijgevoegd mischien kan iemand zijn licht er over laten schijnen of ik uberhaupt goed bezig ben. Alle tips zijn van harte welkom. Sorry bijlage vergeten is nu bijgevoegd Groeten Hein
Quassi Geplaatst: 18 oktober 2007 Geplaatst: 18 oktober 2007 ik heb in de bijlage een query gemaakt, die heet Prijsberekening. 3 dagen 10 euro? dat is 3,33 euro per dag? ik heb in je voorbeeld 3 euro per dag berekend, het aantal dagen wordt berekend en daarna de totaalprijs. of probeer de onderstaande query: Code: SELECT verhuur.Fietsnummer, verhuur.verhuuriD, Fietsen.Objectcode, Prijzen.dag AS dagprijs, verhuur.Datumto, verhuur.datumva, [datumto]-[datumva]+1 AS aantal_dagen, [aantal_dagen]*[dagprijs] AS totaalprijsFROM (Prijzen INNER JOIN (Fietsen INNER JOIN verhuur ON Fietsen.fietsID = verhuur.Fietsnummer) ON Prijzen.Objectcode = Fietsen.Objectcode) INNER JOIN Hfdgroepen ON Prijzen.Objectcode = Hfdgroepen.Objectcode;
newbier Geplaatst: 18 oktober 2007 Auteur Geplaatst: 18 oktober 2007 Hoi, Heel hartelijk dank voor je hulp / bijdrage. Alleen heb ik het denk ik niet goed uitgelegd. Ik maak gebruik van staffelprijzen. Dit betekend dat bv: Object A 1 dag 5,00 2 dagen 8.50 3 dagen 11.50 Object B 1 dag 3.75 2 dagen 5.50 3 dagen 7.50 Als nu bv Object A voor 3 dagen gehuurd wordt moet er 11,50 berekend worden. Groeten Hein
Gast Geplaatst: 19 oktober 2007 Geplaatst: 19 oktober 2007 Dan zal je voor elk aantal dagen een kolom moeten toevoegen en de prijzen moeten ingeven. Dan moet de query zoeken naar het product EN het aantal dagen.
Psychosammie Geplaatst: 19 oktober 2007 Geplaatst: 19 oktober 2007 Laat me eerst wat algemene opmerkingen geven. Je bent behoorlijk aan het normaliseren geslagen. Het is allemaal wel goed maar je maakt het je wel een stuk lastiger. Waarom maak je niet 1 tabel met te verhuren artikelen? Volgens mij heeft die uitsplitsing naar dames of heren fiets helemaal geen toegevoegde waarde. Want hoe werkt het in de praktijk? Er komt een klant. Jij gaat kijken wat je nog hebt staan aan fietsen, dat doe je niet met je computer. En daarna registreer je dat klant X fiets 25 voor 5 dagen meeneemt. Advies: maak het jezelf eerst zo makkelijk mogelijk. In tabel VERHUUR mis ik de koppeling met de klant. Nou zou ik voor klanten ook geen aparte klanttabel maken. De kans dat een klant nog eens terugkomt lijkt me minimaal. Het veld DAGEN hoort niet in de database omdat je dat kan berekenen. Tabel MERK lijkt me voor je verhuur ook niet nodig. Kan later ook nog wel. Tabel HFDGROEPEN bevat naar mijn idee 2 sleutels (GROEPID en OBJECTCODE). Je hebt er maar 1 nodig. Ook de tabel FIETSEN bevat 2 sleutels (FIETSID en FIETSNUMMER). Het nummertje dat jij op de fiets plakt is geschikt als sleutel. En dan je PRIJZEN tabel. Je maakt het wel ingewikkeld met staffel prijzen. In je voorbeeld geef je 3 dagen. Maar wat met 5 of 11 dagen? Je kan onmogelijk voor alle huurperioden een bedrag in de prijzentabel opnemen. Bovendien moet je rekening houden met het feit dat 6 dagen huren duurder kan zijn dan 1 week huren. Er is dus niet zomaar 1 query te verzinnen, je zal in de code een prijsberekening moeten doen afhankelijk van de huurperiode. De prijstabel komt er dan bijvoorbeeld zo uit te zien: Aantal,Eenheid,Prijs 1,d,5,00 2,d,8,50 3,d,11,00 1,w,30,00 2,w,55,00 Waarin d=dag en w=week. En dan mis je dus nog gegevens over wat het kost als ik bijvoorbeeld 4 dagen wil huren. Je zou dan nog een code moeten opnemen voor 4 dagen en meer. De kortingen en toeslagen zou ik in een aparte tabel doen. Zijn kortingen en toeslagen werkelijk gebonden aan de soort fiets? Bondig samengevat: De prijzentabel kan zo niet. Die moet je uit normaliseren. Suc7 Resistance is futile you will be assimilated Those who would give up essential liberty, to purchase a little temporary safety, deserve neither liberty nor safety. Benjamin Franklin (1706-1790) Mijn vrijheid eindigt niet waar jouw angst begint!
newbier Geplaatst: 20 oktober 2007 Auteur Geplaatst: 20 oktober 2007 Hoi, bedankt voor de tips. Ben niet zo erg thuis in het maken van databases maar is wel erg leuk. Ik ben even opnieuw begonnen en heb alles een beetje eenvoudiger gemaakt. Er moet natuurlijk nog veel aan gebeuren. Over de prijsberekening. Ik ben toch met staffelprijzen aan de gang gegaan en heb (zie bijlage) de volgende oplossing bedacht. Zo kan ik voor elke willikeurige groep een staffelprijs maken. Wel is het zo dat ik nog iets moet inbouwen als ik boven een max aantal dagen kom dat hij dan een prijs per dag doorrekend. Ik heb dus een bijlage bijgesloten waarin te zien is wat ik gedaan heb. Groeten Newbier
Psychosammie Geplaatst: 22 oktober 2007 Geplaatst: 22 oktober 2007 Ja, dit is wat ik bedoelde. Je kan nu ook een prijscode invoeren voor weken. Het veldtype van de verhuurprijs zou ik op valuta zetten. Waar je nog eens over kan nadenken is een andere benadering van je staffelprijzen. Je zou een korting methode kunnen gebruiken. Bijvoorbeeld: de prijs voor 1 dag is 5 euro, dus 5 dagen is 25 euro. In een tabel KORTING neem je nu de korting op voor als je meer dan 1 dag huurt. Dat ziet er dan zo uit: Code: 1,2,0 1 of 2 dagen huren dan 0 euro (of 0 procent) korting3,5,1 3 t/m 5 dagen huren dan 1 euro per dag korting (of 1 procent)6,leeg,2 6 of meer dagen huren dan 2 euro korting per dag (of 2 procent) Resistance is futile you will be assimilated Those who would give up essential liberty, to purchase a little temporary safety, deserve neither liberty nor safety. Benjamin Franklin (1706-1790) Mijn vrijheid eindigt niet waar jouw angst begint!
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen