Avatar billede igoogle Forsker
09. august 2017 - 11:23 Der er 4 kommentarer

Fejl i beregning

Hej,

Jeg har følgende udkast af en kode stump

IF @CstPr > 500
        SET    @PRICE_NEW = isnull(round((@CstPr / (1-(@MARKUP/100))),-1)-1,0)
        SET    @BELOB = isnull(@NOINVOAB *( (round((@CstPr / (1-(@MARKUP/100))),-1)-1) * ((100-@RAB1) / 100)  * ((100-@RAB2) / 100)),0)
If @CstPr <= 500
        SET    @PRICE_NEW = isnull((@CstPr / (1-(@MARKUP/100))),0)
        SET    @BELOB = isnull(@NOINVOAB *( (@CstPr / (1-(@MARKUP/100))) * ((100-@RAB1) / 100)  * ((100-@RAB2) / 100)),0)

Hvor jeg afrunder @Price hvis CstPr er større end 500. Så langt så godt, men udfordring ligger i at jeg efterfølgende skal opdatere @Belob med Antal * @Price * rabat)

Jeg får så ikke samme værdi for @Belob som for  @Price når rabatterne er 0 og antal er 1.

Kan nogen gennemskue hvad forskellen er på de to beregninger.
Avatar billede igoogle Forsker
09. august 2017 - 11:51 #1
Pt løst med at sætte ekstra IF sætninger ind ved SET nr 2
Avatar billede arne_v Ekspert
09. august 2017 - 21:03 #2
Er det noedvendigt at lave de beregninger i SQL?
Avatar billede igoogle Forsker
10. august 2017 - 11:25 #3
Det er det eller i BIG programmering (  det er justeringer til Visma ERP )
Avatar billede Slettet bruger
15. august 2017 - 14:21 #4
Smid en ekstra if sætning ind som håndtere hvis du har 0, da du ikke kan gange med 0
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester