Einzelnen Beitrag anzeigen

HCB

Registriert seit: 12. Feb 2020
136 Beiträge
 
Delphi 12 Athens
 
#1

MSAccess SQL Update Statement verkürzen?

  Alt 25. Mai 2021, 12:00
Datenbank: Access • Version: 2003 • Zugriff über: FireDac
Hallo, ich habe folgendes SQL-Statement zur Preisaktualisierung:

UPDATE sARTIKEL As A INNER JOIN ArtLief AS U
On A.ArtNR = U.ArtLiefArtNr
SET A.ArtZeit_0 = U.ArtLiefEkPreis,
where A.ArtZusinfo4 = U.ArtLiefLiefNr
and U.ArtLiefLiefNr = 'K000103';

update sArtikel set ArtVkPreis_0 = Round((ArtZeit_0 * 1.620)/ 0.85,2)
where ArtZusinfo4 = 'K000103' and ArtZeit_0 between 0.01 and 5.00;

update sArtikel set ArtVkPreis_0 = Round((ArtZeit_0 * 1.393)/ 0.85,2)
where ArtZusinfo4 = 'K000103' and ArtZeit_0 between 5.01 and 10.00;

update sArtikel set ArtVkPreis_0 = Round((ArtZeit_0 * 1.336)/ 0.85,2)
where ArtZusinfo4 = 'K000103' and ArtZeit_0 between 10.01 and 30.00;

update sArtikel set ArtVkPreis_0 = Round((ArtZeit_0 * 1.312)/ 0.85,2)
where ArtZusinfo4 = 'K000103' and ArtZeit_0 between 30.01 and 100.00;

update sArtikel set ArtVkPreis_0 = Round((ArtZeit_0 * 1.295)/ 0.85,2)
where ArtZusinfo4 = 'K000103' and ArtZeit_0 between 100.01 and 500.00;

update sArtikel set ArtVkPreis_0 = Round((ArtZeit_0 * 1.252)/ 0.85,2)
where ArtZusinfo4 = 'K000103' and ArtZeit_0 >500.00;

Wobei ArtZeit_0 dem EKPreis entspricht und ArtVKPreis_0 dem neuen VK-Preis.
Ich frage mich ob man das nicht einfacher und kürzer lösen kann.
Am besten wäre so in der Richtung: EK Spanne von [0.00 bis 1000.00] setze den Multiplikator von [2.00 bis 1.05]
also wäre das bei einem EK von 500 EUR der VK 737,50 (Multiplikator 1.475)

Ich habe an so etwas wie array gedacht, Access scheint aber nicht damit umgehen zu können.
Hat jemand vielleich eine Idee wie man das besser lösen kann, also dynamisch ausgehend vom EK den Multiplikator für VK setzen??

LG Harry
  Mit Zitat antworten Zitat