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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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