2014-04-08 1 views
0

아래에 큰 SP 내에서 내 비즈니스를 위해 수행중인 계산을 볼 수 있습니다. 나는 그것을 여기에 게시 할 것이다. 문제는 내가 형식을 올바르게 할 수 없다는 것입니다. 다음과 같이 가정된다 : 결과SP 내에서의 SQL 계산에 올바른 형식을 얻는 방법

CONVERT(DECIMAL(30, 2), (isa.sales_price * 0.8) * (1 - u.discount)) as PRICE 

예 :

  • isa.sales_price는 149
  • u.discount는 24
  • 결과는이다 : - 2741.60

내가 뭘 잘못하고 있니?

편집이 여기에 도움이 후 결과입니다

CONVERT(DECIMAL(30, 2), (isa.sales_price * 0.8) * (1-(u.rabatt/100))) 
+0

예제 값이 출력 결과와 일치하지 않으므로 여기에 뭔가 잘못되었습니다. 또한 sales_price와 할인은 어떤 데이터 유형입니까? –

+0

수정 됨. sales_price는 숫자이며 할인은 십진수입니다. 그것의 더 나은 선택 tho 경우에 둘 다 바뀔 수있다. – Lebowski

답변

1

무엇이 잘못 - 내가 생각하는 - 계산이 당신이 될 기대되지 않는 것입니다 :

149 * 0.8 * (1 - 24)는 실제로 -2741.60을 반환합니다.

왜 당신에게 다른 것을 줄 것으로 기대합니까?

내가 추측 할 경우, 백분율 값이므로 100으로 할인을 나누어야합니다. 그러나 그것은 추측입니다.

+0

그렇습니다. 사실입니다. 오늘은 조금 벗어났습니다. 이것은 24로 백분율로 엑셀에있는 수식이지만 그것은 내가 찾고있는 90.592를 반환합니다. 내 DB의 번호이기 때문에 -2741.60 값을 반환합니다. 누구든지이 문제를 해결하고 수식을 수정하는 방법을 알고 있습니까? – Lebowski

+0

'선택 변환 (십진수 (30, 2), (149 * 0.8) * (1 - 24/100.0))'은 90.59를 반환합니다 - 응답에서 말했듯이, 나는 100으로 할인을 나누어야한다고 생각합니다. –

+0

:) 'CONVERT (십진 (30,2), (isa.sales_price * 0.8) * (1- (u.rabatt/100)))'이 효과가 있습니다! – Lebowski