Autor | Zpráva | ||
---|---|---|---|
martin6541 Profil |
Dobrý den.
Jsem nucen opět žádat o pomoc... pokud by řešení bylo složitější, nebráním se za to zapaltit. Mám program na import dat z xml feedu. V poli pro akční cenu potřebuji načíst cenu, která je nižší ze dvou, které se nabízejí na dvou různých místech fedu. Základní načtení hodnoty nějakého pole z feedu mám takto: [CSV_COL(x)] Takto mám hodnotu ceny, za kterou chci prodávat (načtení pole "[CSV_COL(2)]" odstraním tečku v tisících, vynásobení DPHčkem a slevím o 10%) FLOOR ((REPLACE([CSV_COL(2)], '.', ''))*1.21*0.9)/1.21 Ve feedu mám ale u některých produktů v akci od dodavatele, kterou načítám takto (dostanu přesnou cenu a jen odstraním tečku v tisících a vynásobím DPH): REPLACE([CSV_COL(4)], '.', '')*1.21; Z marketingových produktů bych potřeboval načíst jeden nebo druhý, vždy podle toho, který bude nižší. Jak to napsat? |
||
juriad Profil |
#2 · Zasláno: 24. 11. 2022, 10:47:56
Mysql má funkci LEAST, která vrací menší ze seznamu (v tvém případě dvou) hodnot.
|
||
Kajman Profil |
#3 · Zasláno: 24. 11. 2022, 11:16:19
Jen pozor na null hodnoty. Pokud cena v akci není vždy vyplněná a výraz je null, tak ho musíte obalit např. funkcí coalesce, kde místo null použijete velkou hodnotu nebo ten výraz pro základní cenu.
|
||
martin6541 Profil |
#4 · Zasláno: 24. 11. 2022, 11:38:46
No, stačí trochu nakopnout a šlo to. Měl sem strach, že to bude složité.
V tom feedu to mají děláno tak, že cena je vždy. A pokud není zboží v akci, tak je akční cena stejná jako běžná. Děkuji. Snad to pomůže i jiným. |
||
Kajman Profil |
#5 · Zasláno: 24. 11. 2022, 17:12:02
Tak pokud nemůže být akční cena vyšší, tak v takovém případě můžete používat přímo jen tu akční cenu.
|
||
martin6541 Profil |
#6 · Zasláno: 24. 11. 2022, 17:32:59
Kajman:
„Tak pokud nemůže být akční cena vyšší, tak v takovém případě můžete používat přímo jen tu akční cenu.“ Nemůžu. Protože pokud zboží není v akci, tak tam výrobce šoupne cenu základní. Já si ji ale snižuji o 10% což akční nemůžu, protože tu musím dle smlouvy držet stejnou. Takže jednoduše nepoznám, kdy mohu a nemohu... prostě je to složitější :) |
||
juriad Profil |
#7 · Zasláno: 24. 11. 2022, 17:52:56
To pak může být zajímavé, pokud akční cena má menší slevu než 10%.
Základní cena: 100 Akční cena: 98 Tvá cena: 90 Je správně, že to to budeš prodávat za 90 a nikoli za akčních 98? Pokud ne, tak budeš muset přidat nějakou další logiku. Například: case when zakladni = akcni then zakladni * 0.9 else akcni end Pomocí case bys také mohl snadno simulovat least .
|
||
martin6541 Profil |
#8 · Zasláno: 24. 11. 2022, 18:11:49
juriad:
„To pak může být zajímavé, pokud akční cena má menší slevu než 10%.“ v mém případě tomu tak není. Výrobce určuje prodejní cenu a já jako prodejce mohu slevit maximálně o 10%... ale jejich výprodeje jsou vždy větší sleva než 10% ale v jiných případech u někho jiného to samozřejmě nastat může. Ale už snad není nikdo jiný, kdo by dostával tak de***í feed jako já :) |
||
Časová prodleva: 1 rok
|
0