Seite 1 von 1

Update Preise beim Artikel

Verfasst: Mo 9. Jul 2018, 21:03
von Woolfi
Hallo Zusammen

ich möchte gerne aus der Datenbank aus der Tabelle ABG Einzelpreise herausholen anhand der gleichen ID und diese zusammenrechnen lassen und dann die Summe in VK Preis reinschreiben.

Ich bekomme zwar keine Fehlermeldung jedoch einen 0 Wert.

Sprich es passiert einfach nichts.

schreie um Hilfe :(

Anbei der Code:

execute block
returns (art_id do_id)
as
declare vkbrutto_neu do_waehrung;
declare vkbrutto_alt do_waehrung;

begin
for select id, art.vknetto from art where ART.ARTIKELART = '5' into :art_id, :vkbrutto_alt do
begin
select sum(ABG.GESAMTPREIS)
from ABG
where ABG.ART_ID = :art_id into :vkbrutto_neu;

if ( :vkbrutto_alt != :vkbrutto_neu ) then
begin
UPDATE ART
SET ART.VKNETTO = :vkbrutto_neu,
ART.VKBAUTEIL = :vkbrutto_neu
where ART.ID = :ART_ID;
suspend;
end
end
end

Re: Update Preise beim Artikel

Verfasst: Di 10. Jul 2018, 09:25
von Woolfi
Moin

hab gestern noch was dazu gebastelt.

jetzt geht es, aber wenn das Feld null ist dann schreib nichts rein.

Wenn ich zuerst das Feld z.B. 1 fülle dann funkt alles.

execute block
returns (art_id do_id)
as
declare vk_neu do_waehrung;
declare vk_alt do_waehrung;
declare vkbrutto do_waehrung;
begin
for select ART.ID, ART.VKNETTO, ART.VKBRUTTO from ART where ART.ARTIKELART = '5' into :art_id, :vk_alt, :vkbrutto do
begin

select sum(ABG.GESAMTPREIS)
from ABG
where ABG.ART_ID = :art_id into :vk_neu;

if ( :vk_alt is distinct from :vk_neu ) then
begin
UPDATE ART
SET
ART.VKBAUTEIL = :vk_neu,
ART.VKNETTO = :vk_neu,
ART.VKBRUTTO = :vk_neu * 1.19
where ART.ID = :ART_ID;

suspend;
end
suspend;
end
end

Re: Update Preise beim Artikel

Verfasst: Di 10. Jul 2018, 11:12
von martin.koeditz
Hallo Woolfi,

in welchem Feld steht NULL?
Bitte beachte, dass bei Kalkulationen mit NULL immer NULL als Ergebnis raus kommt. Besser mit COALESCE(feldname, 0) arbeiten. Dann erhalte ich als Ergebnis zumindest einen numerischen Wert mit dem ich weiterrechnen kann.

Auch dies funktioniert nur, wenn keines der Felder NULL enthält:

Code: Alles auswählen

if ( :vkbrutto_alt != :vkbrutto_neu ) then
Gruß
Martin

Re: Update Preise beim Artikel

Verfasst: Di 10. Jul 2018, 12:17
von Woolfi
Hi Martin

null steht in VKBrutto, VKNetto und VKBAUTEIL

sprich alle 3 Felder haben am Anfang null.

Beim Import der Artikel schreiben wir nun die "0" rein wie du sagtest damit zumindest ein nummerischer Wert vorhanden ist.

Die Frage ist nur mit dem 2 Code bekomme ich die VKNetto und VKBauteil gefüllt, jedoch nur der VKBrutto bleibt dann auch bei 0 stehen

Re: Update Preise beim Artikel

Verfasst: Di 10. Jul 2018, 12:32
von martin.koeditz
Gehen wir mal davon aus, dass dieser Code-Abschnitt aufgerufen wird.

Code: Alles auswählen

if ( :vk_alt is distinct from :vk_neu ) then
begin
UPDATE ART
SET
ART.VKBAUTEIL = :vk_neu,
ART.VKNETTO = :vk_neu,
ART.VKBRUTTO = :vk_neu * 1.19
where ART.ID = :ART_ID;
Wenn ART.VKBAUTEIL <> 0 ist, dann ist :vk_neu ebenfall ungleich 0. Und damit gilt, dass ART.VKBRUTTO ebenfalls ungleich 0 sein muss. Bitte prüfe, ob dieses UPDATE wirklich durchgeführt wird. Existieren sonst noch Trigger, die das Ergebnis beeinflussen könnten?

Gruß
Martin

Re: Update Preise beim Artikel

Verfasst: Di 10. Jul 2018, 16:43
von Woolfi
Hi Martin

der VKNetto und VKBAUTEIL werden richtig berechnet, nur der VKBrutto will sich nicht anpassen lassen.

Re: Update Preise beim Artikel

Verfasst: Fr 24. Apr 2020, 11:43
von colaflasche
Hallo Woolfi,

schaue Dir dazu mal den Menüpunkt 9.1.2.7.1 an.

Viele Grüße, Jan

Re: Update Preise beim Artikel

Verfasst: Fr 24. Apr 2020, 18:04
von martin.koeditz
Hallo colaflasche,

ist deine letzte Nachricht im richtigen Beitrag gelandet? Kann dem nicht ganz folgen.

Gruß
Martin

Re: Update Preise beim Artikel

Verfasst: Mo 13. Jul 2020, 11:06
von colaflasche
Ja, ist sie, der Hersteller der WaWi, die er verwendet bietet unter dem Menüpunkt genau das, was er braucht :).

Re: Update Preise beim Artikel

Verfasst: Di 14. Jul 2020, 16:39
von bfuerchau
Nimm für die Berechnung

coalesce(Feld, 0)