[SQL] Nieuwe inkoopprijzen doorvoeren in prijsafspraken

Pagina: 1
Acties:

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Leuke vervolg vraag hierop dan :
(onthoud dat alle tabellen readonly zijn, anders is het niet leuk, en niet waarheidsgetrouw :) )

Ik heb een tabel inkoopprijzen met daarin simpelm gezegd :
code:
1
2
3
artikel         int (11)
inkoopprijs decimal (6,2)
ingangsdatum date()


en een tabel prijsafspraken
code:
1
2
3
4
5
artikel    int(11)
klantnr   int(11)
ingangsdatum date()
einddatum    date()
verkoopprijs   decimal(6,2)


nu wil ik dat als een inkoopsprijs omhoog gaat dat de prijsafspraak ook omhoog gaat ( c.q. er wordt een nieuwe prijsafspraak gemaakt met een ingangsdatum van vandaag en een einddatum zoals vorige prijsafspraak. Maar als een inkoopsprijs omlaag gaat dan moet er niks veranderen.

Nu los ik dit op door 's nachts een hele reeks ingewikkelde query's te draaien die een aantal hulptabellen maken volgens :
1 : Eerst een hulptabel met prijsafspraken inclusief inkoopsprijs die geldig was toen de prijsafspraak inging.
2 : Dan kijken of de inkoopsprijs in de hulptabel lager is dan de huidige inkoopsprijs zoja dan -> nieuwe prijsafspraak zonee dan -> negeer.

Is dit nog handiger te doen???

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:14

gorgi_19

Kruimeltjes zijn weer op :9

Topicstarter
Laatste reactie gesplitst uit [rml][ PHP] Prijsvraag datum herkennen[/rml] , omdat het een heel nieuw onderwerp eigenlijk betreft. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Zit er een vaste marge tussen in- en verkoopprijs? Wat moet de nieuwe verkoopprijs worden?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Er is geen vaste marge voor alle klanten. De enige marge die er is is door terug te rekenenen aan de hand van de verkoopprijs/inkoopprijs die op een bepaald moment geldig zijn .

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ja, maar mijn vraag is hoe de nieuwe verkoopprijs bepaald moet worden?

Ietd kost nu 10 eur, en gaat 11 eur kosten. Wat is dan de nieuwe verkoopprijs?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ok:
op 1-1-2004 kost iets inkoop 10,- en verkoop 15,- dus marge (over inkoop) =(verkoop-inkoop)/inkoop wordt dan 0.5
Op 01-06-2004 kost iets inkoop 20,- nu wil ik dat de marge van 0.5 blijft bestaan dus moet de verkoop 30,- worden.

Maar als op 29-05-2004 de inkoop 5,- wordt moet er niks veranderen in de prijsafspraak want de inkoop is gedaald.

Marge berekening etc. gaat wel zoals wij dat willen. Het grote probleem is alleen dat ik dus een hulptabel aanmaak om de inkoopsprijs op het moment ingang prijsafspraak te bepalen. Want die inkoopsprijs is de maximale ingangsdatum van een inkoopsprijs op een artikel die geldig was voordat de prijsafspraak inging..
code:
1
2
3
4
5
select max(inkoopprijzen.ingangsdatum),prijsafspraken.artikelnummer,prijsafspraken.verkoopprijs
from inkoopprijzen,prijsafspraken
where (inkoopprijzen.ingangsdatum<prijsafspraken.ingangsdatum) and
           (inkoopsprijzen.artikelnr=prijsafspraken.artikelnr) and
           (prijsafspraken.einddatum> now())

Hiermee maak ik dus een hulptabel. Waarin ik de oude inkoopsprijs heb en de verkoopsprijs van de prijsafspraak.

Hierna doe ik dus een query om de huidige inkoopsprijs erbij te gaan bepalen en te gaan vergelijken of de inkoopsprijs gedaald of gestegen is sinds de prijsafspraak inging.

Nu wil ik dus alleen van de hulptabel af. ( Hou aub wel even in gedachten dat de inkoopsprijzen tabel op dit moment 2.000.000 records bevat en de prijsafspraken bevat op dit moment 18.500.000 records ) dus iets met een tablescan is redelijk uit den boze.
Pagina: 1