Mehrwertsteuerberechnung automatisch

amadeus

New Member
Aufgrund der anstehenden Mehrwertsteuererhöhung muss ich alle Preise in einer Spalte einer Tabelle ändern. Nun habe ich mir gedacht, ich könnte das mit einer einzigen Formel lösen, da es sich um mehrere hundert Preise handelt. Es gibt folgende Bedingungen:

* Der momentan eingetragene Preis ist Brutto mit 2 Dezimalstellen
* Es gibt nur ganze Euro oder ,50 Beträge
* Der neue Preis soll um 3% erhöht werden und immer zum nächsthöheren ,50 oder ganzen Eurobetrag aufgerundet werden - niemals abgerundet!!

Den Ansatz hab ich schon, nur stimmt hier die Rundung nicht, da "normal" gerundet wird (nur beispielsweise als SELECT):

Code:
SELECT ROUND(((price / 1.16) * 1.19),2) FROM `products`

Wie kann man zum nächsthöheren glatten Euro bzw. ,50 Betrag runden. Wie müsste die richtige Formel aussehen?

Vielen Dank für jede Hilfe
 
Hallo!

Es mag sicherlich elegantere Lösungen geben und meine Beispiele sind im "Blindflug" geschrieben ohne es ausprobiert zu haben. Also lieber mit ein paar Testdaten ausprobieren ;)

update products set price = round(price/1.16*1.19,1)
update products set price = price+0.4 where price-truncate(price,0)=0.1
update products set price = price+0.3 where price-truncate(price,0)=0.2
update products set price = price+0.2 where price-truncate(price,0)=0.3
update products set price = price+0.1 where price-truncate(price,0)=0.4
update products set price = price+0.4 where price-truncate(price,0)=0.6
update products set price = price+0.3 where price-truncate(price,0)=0.7
update products set price = price+0.2 where price-truncate(price,0)=0.8
update products set price = price+0.1 where price-truncate(price,0)=0.9

Gruß flyingoffice
 
Last edited by a moderator:
Back
Top