Srcipt für Euro mit Punkt statt Komma

Hummus

Grünschnabel
Hallo Leute,

ich bekomme täglich eine CSV-Datei mit Artikeln und Preisen. Diese importiere ich via Navicat
in eine Datenbank. Danach lasse ich ein Script laufen um diverse Artikel zu löschen.

Soweit , so gut. Nun möchte ich die Varchar Spalte mit den Werten z.B 20,22 in eine andere Spalte mit Decimal 20.22 und diesen Wert dann in eine weitere Spalte "brutto" inkl. mwst automatisiert ausfüllen lassen

------------------------------------------------------------------
| preis original | preis decimal | preis x1.19 brutto |
------------------------------------------------------------------
| 20,22 | 20.22 | 24.06 |
------------------------------------------------------------------

Also habe nur die Spalte "Preis Original"


Kann das hier leider nicht via PHP erledigen lassen.
Für ein kleines Script wäre ich euch sehr Dankbar, da ich grad anscheinend total auf
dem schaluch stehe.

Vielen Dank im Voraus:p
 
Schau mal ob du damit etwas anfangen kannst:

SQL:
SELECT original,
REPLACE(original, ",", ".") AS DECIMAL, (
REPLACE(original, ",", ".") * 1.19) AS brutto
FROM tabelle

Hiermit wird in der Spalte "original" das Komma durch einen Punkt ersetzt und als Spalte "decimal" ausgegeben. Zusätzlich wird die Spalte "brutto" ausgegeben bei der der Inhalt mit 1,19 multipliziert wird.
 
Oder hier das direkte einfügen der umgewandelten Daten in eine andere Tabelle:

SQL:
INSERT INTO neue_tabelle (`decimal`, `brutto`)
SELECT @d := (
REPLACE(original, ",", ".")) AS d, @b := (@d * 1.19)
FROM tabelle;
 
Vielen Dank Tombe,

wie bekomme ich nach folgendem Script die Daten in die Spalte "PreisDecimal" hinein.

SELECT Preis,
REPLACE(Preis, ",", ".")
AS PreisDecimal
FROM Tabelle

Damit hätte ich eine eigene Orignal-Spalte, allerdings ohne die alte Varchar Spalte anzufassen. Was ich auch nicht kann, da diese wegen einer anderen Webapp so laufen lassen muss.
"PreisDecimal" = Decimal 20,2
"Preis" = Varchar 255

Vielen Dank Tombe
 
Also wenn du nur die Spalte "PreisDecimal" ändern willst, dann ist es folgende Anweisung:

SQL:
UPDATE tabelle SET PreisDecimal = REPLACE(Preis, ",", ".")

wenn du die Spalten "PreisDecimal" und "PreisBrutto" ändern willst, dann ist es diese Anweisung:

SQL:
UPDATE tabelle SET PreisDecimal = REPLACE(Preis, ",", "."), PreisBrutto = (REPLACE(Preis, ",", ".") * 1.19)

Wobei zu beachten ist, das mit diesen Anweisungen alle in der Tabelle vorhandenen Datensätze betroffen sind, aber das soll ja wohl auch so sein.
 
Vielen Dank! hat alles geklappt!

Hast mein Tag gerettet. Habe jetzt die OrignalPreisNetto Spalte mit Komma und eine neue mit Decimalwert mit und ohne MwSt.

Mission beendet,

Danke vielmals
 
Zurück