使用Sql Query计算单位费率和数量

时间:2014-01-16 09:54:28

标签: sql-server-2008

我给的数据类型的查询和表列名称。

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 , 

1 个答案:

答案 0 :(得分: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 ,