2014-01-16 4 views
0

데이터 형식과 함께 쿼리 및 테이블 열 이름을 지정하고 있습니다.Sql 쿼리를 사용하여 단위 속도 및 수량을 계산하십시오.

Column name  Data Type 
iBasicRate  Decimal    
iTaxesAndLevies Decimal 
vsUnitRate  nchar 
iAmount   Deciaml 
vsQuantity  Deciaml 

첫 번째 쿼리 찾기 단위 요금

공식Unit Rate=Basic Rate + Taxes

이 (금액 추가)를 추가 제공되지 않습니다 쿼리에서
CASE tBOQ.iBOQLineItemType WHEN '3' THEN Convert(VARCHAR,CONVERT(DECIMAL,tBOQ.iBasicRate)) + Convert(VARCHAR,CONVERT(DECIMAL,tBOQ.iTaxesAndLevies)) 
      WHEN '5' THEN Convert(VARCHAR,CONVERT(DECIMAL,tBOQ.iBasicRate)) + Convert(VARCHAR,CONVERT(DECIMAL,tBOQ.iTaxesAndLevies))  
      ELSE '---'  
      END as vsUnitRate, 

그냥 다음 금액을 추가입니다 . 예 :

Basic rate  Tax  Unit rate(Basic rate+tax) 
4500.00  225.00 4500225 (Show like this) 

그리고 두 번째 쿼리는 금액 찾기가

공식이Unit Rate*Quantity=Amount

CASE tBOQ.iBOQLineItemType WHEN '3' THEN CONVERT(varchar,tBOQ.iAmount) 
      WHEN '5' THEN CONVERT(varchar,tBOQ.iAmount)   
      ELSE '---'   
      END as iAmount , 
입니다
+0

그리고 질문은 무엇입니까? –

+0

왜'convert'를 사용합니까? jus try- select itemtype = 3 then basicrate + taxe는 xxx1로 끝나고, itemtype = 5 일 때 끝납니다. xxx2로 끝납니다. –

+0

왜 unitrate가 nchar 유형입니까? 10 진수로 변경하고 변환을 제거하십시오. – Srini

답변

0
어쩌면 이런 일이? :

CASE WHEN tBOQ.iBOQLineItemType in ('3', '5') THEN tBOQ.iBasicRate + 
                tBOQ.iTaxesAndLevies 
      ELSE 0  
      END as vsUnitRate, 

CASE WHEN tBOQ.iBOQLineItemType in ('3', '5') THEN (tBOQ.iBasicRate + 
                tBOQ.iTaxesAndLevies) * 
                tBOQ.vsQuantity  
      ELSE 0   
      END as iAmount , 
관련 문제