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
Update Preise beim Artikel
Moderator: thorben.braun
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
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
- martin.koeditz
- Beiträge: 469
- Registriert: Sa 31. Mär 2018, 14:35
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:
Gruß
Martin
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
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
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
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
- martin.koeditz
- Beiträge: 469
- Registriert: Sa 31. Mär 2018, 14:35
Gehen wir mal davon aus, dass dieser Code-Abschnitt aufgerufen wird.
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
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;
Gruß
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
-
- Beiträge: 16
- Registriert: Fr 6. Mär 2020, 16:32
Hallo Woolfi,
schaue Dir dazu mal den Menüpunkt 9.1.2.7.1 an.
Viele Grüße, Jan
schaue Dir dazu mal den Menüpunkt 9.1.2.7.1 an.
Viele Grüße, Jan
- martin.koeditz
- Beiträge: 469
- Registriert: Sa 31. Mär 2018, 14:35
Hallo colaflasche,
ist deine letzte Nachricht im richtigen Beitrag gelandet? Kann dem nicht ganz folgen.
Gruß
Martin
ist deine letzte Nachricht im richtigen Beitrag gelandet? Kann dem nicht ganz folgen.
Gruß
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
-
- Beiträge: 16
- Registriert: Fr 6. Mär 2020, 16:32
Ja, ist sie, der Hersteller der WaWi, die er verwendet bietet unter dem Menüpunkt genau das, was er braucht .
Nimm für die Berechnung
coalesce(Feld, 0)
coalesce(Feld, 0)