poetflashimpact
Cadet 1st Year
- Registriert
- Juli 2010
- Beiträge
- 13
Hallo Liebes ComputerBase Forum
Folgendes Problem habe ich:
Ich möchte die Preise meines Webshops Updaten. Dafür habe ich eine Tabelle mit Kriterien für die Kalkulation erstellt.
Tabelle 1: ct_supplier_tmp
- supplier_reference (INT)
- price_incl (DUBLE)
Tabelle 2: ct_calculation
- start (DUBLE)
- end (DUBLE)
- calcinproz (INT)
Tabelle 2 Datensätze: ct_calculation
[table="width: 500"]
[tr]
[td]start [/td]
[td]end [/td]
[td]calcinproz [/td]
[/tr]
[tr]
[td]0[/td]
[td]9.99[/td]
[td]200[/td]
[/tr]
[tr]
[td]10[/td]
[td]19.99[/td]
[td]180[/td]
[/tr]
[tr]
[td]20[/td]
[td]49.99[/td]
[td]150[/td]
[/tr]
[tr]
[td]50[/td]
[td]99.99[/td]
[td]130[/td]
[/tr]
[tr]
[td]100[/td]
[td]20000[/td]
[td]110[/td]
[/tr]
[/table]
Wenn ich jetzt das Query ausführe, erhallte ich erfolgreich die Tabelle.
Das Problem ist, das für jede nicht Erfüllung des IF Kriterium in der SQL Abfrage ein "NULL" geschrieben wird. Führe ich jetzt diese Abfrage mit einem UPDATE durch, geht meine ganze Tabelle Kaput.
Ich habe dies anschließend in 2 Schritten gelöst. Ich Schreibe zuerst die Datensätze in eine Tabelle und anschließend per UPDATE in die "ct_supplier_tmp". Leider braucht die Funktion UPDATE extrem viel ressourcen und zeit.
Gibt es eine Möglichkeit, dies schöner und schneller zu lösen?
Leider konnte ich mein Problem in meinen Augen nicht richtig beschreiben, ich hoffe ihr verstehts. Ansonsten stehe ich gerne für Fragen bereit
Besten dank für eure Hilfe, Poetflashimpact
Folgendes Problem habe ich:
Ich möchte die Preise meines Webshops Updaten. Dafür habe ich eine Tabelle mit Kriterien für die Kalkulation erstellt.
Tabelle 1: ct_supplier_tmp
- supplier_reference (INT)
- price_incl (DUBLE)
Tabelle 2: ct_calculation
- start (DUBLE)
- end (DUBLE)
- calcinproz (INT)
Tabelle 2 Datensätze: ct_calculation
[table="width: 500"]
[tr]
[td]start [/td]
[td]end [/td]
[td]calcinproz [/td]
[/tr]
[tr]
[td]0[/td]
[td]9.99[/td]
[td]200[/td]
[/tr]
[tr]
[td]10[/td]
[td]19.99[/td]
[td]180[/td]
[/tr]
[tr]
[td]20[/td]
[td]49.99[/td]
[td]150[/td]
[/tr]
[tr]
[td]50[/td]
[td]99.99[/td]
[td]130[/td]
[/tr]
[tr]
[td]100[/td]
[td]20000[/td]
[td]110[/td]
[/tr]
[/table]
Code:
SELECT
ct_supplier_tmp.supplier_reference,
IF(
ct_supplier_tmp.price_incl >= ct_calculation.start and ct_supplier_tmp.price_incl <= ct_calculation.end,
ROUND((ct_supplier_tmp.price_incl)/100*(ct_calculation.calcinproz)/0.05)*0.05,
Null
)
AS
priceinclcalc
FROM
ct_supplier_tmp, ct_calculation
Wenn ich jetzt das Query ausführe, erhallte ich erfolgreich die Tabelle.
Das Problem ist, das für jede nicht Erfüllung des IF Kriterium in der SQL Abfrage ein "NULL" geschrieben wird. Führe ich jetzt diese Abfrage mit einem UPDATE durch, geht meine ganze Tabelle Kaput.
Ich habe dies anschließend in 2 Schritten gelöst. Ich Schreibe zuerst die Datensätze in eine Tabelle und anschließend per UPDATE in die "ct_supplier_tmp". Leider braucht die Funktion UPDATE extrem viel ressourcen und zeit.
Gibt es eine Möglichkeit, dies schöner und schneller zu lösen?
Leider konnte ich mein Problem in meinen Augen nicht richtig beschreiben, ich hoffe ihr verstehts. Ansonsten stehe ich gerne für Fragen bereit
Besten dank für eure Hilfe, Poetflashimpact