mysql versie is : 3.23.51-nt
Een dbase met prijsafspraken
en een dbase met inkoopprijzen.
Tabel prijsafspraken is :
Tabel Inkoopprijzen is :
Bij alletwee de tabellen worden er records toegevoegd, maar niet afgevoerd.
Dus de huidige prijsafspraak voor een klant is de laatste prijsafspraak ( = laatste ingangsdatum voor vandaag ) waarvan de verloopdatum nog niet geweest is,
en de huidige inkoopprijs is de laatste inkoopprijs ( = waar actueel = J )
Een prijsafspraak moet wel altijd een inkoopprijs hebben, een inkoopprijs hoeft niet altijd een prijsafspraak te hebben.
Probleem :
Als een inkoopprijs omhoog gaat dan willen wij een uitdraai hebben met de nieuwe verkoopprijs.
Alleen dit moet wel met een even hoog percentage omhoog gaan als er eerst opstond, als een inkoopprijs daalt moet de prijsafspraak gelijk blijven.
Vb.
een artikel (= 0100000 )heeft prijsafspraak van 1,00 gemaakt op 17-02-02 verloopt op 17-02-04
nu stijgt de inkoopprijs van 0,50 ingevoerd op 01-01-02 naar 0,75 per 10-06-03.
Dan was eerst het stijgingspercentage 2 ( = 1,0 / 0,5 ) dan zouden wij een query willen hebben wat als nieuwe prijsafspraak geeft per 11-06-03 1,50 ( 1,5 / 0,75 = 2 ).
Vraag :
Kan iemand mij helpen met zo'n query te bouwen. Je hoeft niet de complete SQL-query te geven, maar ik heb gewoon wat probleempjes met sql waarbij ik wat hulp nodig heb, dus geen complete query te bouwen, alleen bouwstenen /fouten aanwijzen heb ik nodig.
Tot nu toe heb ik als idee in gewone taal :
1 : Zoek alle inkoopprijzen op die gisteren zijn ingegaan en zoek van deze inkoopprijzen de oude inkoopprijzen op
zodat je het stijgingspercentage kan uitrekenen (
probleem zit hem hier in dat als ik alle artnrs heb die actueel zijn en per gisteren ingaan, hoe krijg ik dan
de vorige inkoopprijs tevoorschijn ( of het stijgingspercentage ).
Gekomen tot :
Probleem hierbij is alleen dat ik nog geen stijgingspercentage heb, en dat ik van een artikel dat gisteren
gewijzigd is alle oude inkoopprijzen te zien krijg, hoe krijg ik hier een limit op die zinvol is ( Want
een limit 0,2 aan het einde is niet echt zinvol )
2 : Zoek in de prijsafspraken tabel naar de laatste verkoopprijs die nog ingegaan is en die nog niet verlopen is.
Gekomen tot :
Gaat goed
3 : Doe verkoopprijs * stijgingspercentage als stijgingspercentage > 1 en print dit naar een printer / bestand
Alleen ik kom dus in de knoei met stap 1, stap 2 gaat wel en ik denk dat ik dan het beste met php stap 3 kan
uitvoeren ( anders weet ik helemaal niet meer hoe de query zou moeten worden )
Mysql 3.23.51-nt kan geen subquery's aan.
Wie o wie kan mij hierbij helpen...
Een dbase met prijsafspraken
en een dbase met inkoopprijzen.
Tabel prijsafspraken is :
code:
1
2
3
4
5
6
| Artnr (0-9999999)
Ingangsdatum ("01-01-80"-"01-01-30")
Verloopdatum ("01-01-80"-"01-01-30")
Klantnr (0-9999999)
VerkoopPrijs (0.00-1000000.00)
Korting (0-100) |
Tabel Inkoopprijzen is :
code:
1
2
3
4
5
| Artnr (0-9999999)
Ingangsdatum ("01-01-80"-"01-01-30")
VerkoopPrijs (0.00-1000000.00)
InkoopPrijs (0.00-1000000.00)
Actueel (J/N) |
Bij alletwee de tabellen worden er records toegevoegd, maar niet afgevoerd.
Dus de huidige prijsafspraak voor een klant is de laatste prijsafspraak ( = laatste ingangsdatum voor vandaag ) waarvan de verloopdatum nog niet geweest is,
en de huidige inkoopprijs is de laatste inkoopprijs ( = waar actueel = J )
Een prijsafspraak moet wel altijd een inkoopprijs hebben, een inkoopprijs hoeft niet altijd een prijsafspraak te hebben.
Probleem :
Als een inkoopprijs omhoog gaat dan willen wij een uitdraai hebben met de nieuwe verkoopprijs.
Alleen dit moet wel met een even hoog percentage omhoog gaan als er eerst opstond, als een inkoopprijs daalt moet de prijsafspraak gelijk blijven.
Vb.
een artikel (= 0100000 )heeft prijsafspraak van 1,00 gemaakt op 17-02-02 verloopt op 17-02-04
nu stijgt de inkoopprijs van 0,50 ingevoerd op 01-01-02 naar 0,75 per 10-06-03.
Dan was eerst het stijgingspercentage 2 ( = 1,0 / 0,5 ) dan zouden wij een query willen hebben wat als nieuwe prijsafspraak geeft per 11-06-03 1,50 ( 1,5 / 0,75 = 2 ).
Vraag :
Kan iemand mij helpen met zo'n query te bouwen. Je hoeft niet de complete SQL-query te geven, maar ik heb gewoon wat probleempjes met sql waarbij ik wat hulp nodig heb, dus geen complete query te bouwen, alleen bouwstenen /fouten aanwijzen heb ik nodig.
Tot nu toe heb ik als idee in gewone taal :
1 : Zoek alle inkoopprijzen op die gisteren zijn ingegaan en zoek van deze inkoopprijzen de oude inkoopprijzen op
zodat je het stijgingspercentage kan uitrekenen (
probleem zit hem hier in dat als ik alle artnrs heb die actueel zijn en per gisteren ingaan, hoe krijg ik dan
de vorige inkoopprijs tevoorschijn ( of het stijgingspercentage ).
Gekomen tot :
code:
1
2
3
4
5
6
| SELECT inkoopprijzen.artnr
FROM inkoopprijzen
LEFT JOIN inkoopprijzen as iprijs ON inkoopprijzen.artnr=iprijs.artnr
WHERE iprijs.ingangsdatum = DATE_SUB(now(),INTERVAL 1 day) and
inkoopprijzen.ingangsdatum < now()
order by artikelnummer asc,ingangsdatum desc; |
Probleem hierbij is alleen dat ik nog geen stijgingspercentage heb, en dat ik van een artikel dat gisteren
gewijzigd is alle oude inkoopprijzen te zien krijg, hoe krijg ik hier een limit op die zinvol is ( Want
een limit 0,2 aan het einde is niet echt zinvol )
2 : Zoek in de prijsafspraken tabel naar de laatste verkoopprijs die nog ingegaan is en die nog niet verlopen is.
Gekomen tot :
code:
1
2
3
4
5
6
| select artnr,klantnr,verkoopprijs,max(ingangsdatum)
from prijsafspraak
where ingangsdatum < now() and
einddatum > now()
group by artnr,klantnr
order by klantnr asc, artnr asc |
Gaat goed
3 : Doe verkoopprijs * stijgingspercentage als stijgingspercentage > 1 en print dit naar een printer / bestand
Alleen ik kom dus in de knoei met stap 1, stap 2 gaat wel en ik denk dat ik dan het beste met php stap 3 kan
uitvoeren ( anders weet ik helemaal niet meer hoe de query zou moeten worden )
Mysql 3.23.51-nt kan geen subquery's aan.
Wie o wie kan mij hierbij helpen...