如果TM1.Qty为NULL,则设置为0ISNULL
使用指定的替换值替换 NULL。语法
ISNULL ( check_expression , replacement_value ) 参数
check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型
返回与 check_expression 相同的类型。注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。示例
A. 将 ISNULL 与 AVG 一起使用
下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO下面是结果集:-------------------------- 
14.24                      (1 row(s) affected)B. 使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, 
   ISNULL(price, 0.00) AS Price
FROM titles
GO下面是结果集:Title           Type         Price          
--------------- ------------ -------------------------- 
The Busy Execut business     19.99                      
Cooking with Co business     11.95                      
You Can Combat  business     2.99                       
Straight Talk A business     19.99                      
Silicon Valley  mod_cook     19.99                      
The Gourmet Mic mod_cook     2.99                       
The Psychology  UNDECIDED    0.00                       
But Is It User  popular_comp 22.95                      
Secrets of Sili popular_comp 20.00                      
Net Etiquette   popular_comp 0.00                       
Computer Phobic psychology   21.59                      
Is Anger the En psychology   10.95                      
Life Without Fe psychology   7.00                       
Prolonged Data  psychology   19.99                      
Emotional Secur psychology   7.99                       
Onions, Leeks,  trad_cook    20.95                      
Fifty Years in  trad_cook    11.95                      
Sushi, Anyone?  trad_cook    14.99                      (18 row(s) affected)Round(isnull(TM1.Qty, 0), 0)把isnull(TM1.Qty, 0)结果进行四舍五入.ROUND
返回数字表达式并四舍五入为指定的长度或精度。语法
ROUND ( numeric_expression , length [ , function ] ) 参数
numeric_expression精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。length是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。function是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。返回类型
返回与 numeric_expression 相同的类型。注释
ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。示例 结果 
ROUND(748.58, -4) 0 
当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的 numeric_expression。示例 结果 
ROUND(748.58, -1) 750.00 
ROUND(748.58, -2) 700.00 
ROUND(748.58, -3) 1000.00 
示例
A. 使用 ROUND 和估计值
下例显示两个表达式,说明使用 ROUND 函数且最后一个数字始终是估计值。SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) 
GO下面是结果集:----------- -----------
123.9990    124.0000    B. 使用 ROUND 和四舍五入的近似值
下例显示四舍五入和近似值。语句 结果 
SELECT ROUND(123.4545, 2)
 123.4500
 
SELECT ROUND(123.45, -2)
 100.00
 
C. 使用 ROUND 截断
下例使用两个 SELECT 语句说明四舍五入和截断之间的区别。第一个语句四舍五入结果。第二个语句截断结果。语句 结果 
SELECT ROUND(150.75, 0)
 151.00
 
SELECT ROUND(150.75, 0, 1)
 150.00
 

解决方案 »

  1.   

    isnull(TM1.Qty, 0)  当qty列是null的时候 用 0来替换round  四舍五入函数
      

  2.   

    Round(isnull(TM1.Qty, 0), 0) 
    在联机帮助输入关键字查找就都明白了.
    isnull
    ISNULL
    使用指定的替换值替换 NULL。语法
    ISNULL ( check_expression , replacement_value ) 参数
    check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型
    返回与 check_expression 相同的类型。注释
    如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。round 四舍五入函数
      

  3.   

    isnull(TM1.Qty, 0) --如果 TM1.Qty 為null 則 視為0處理
    round --傳回已經進位到特定長度或有效位數的數值運算式。 具體看聯機幫助
    Round((IsNull(M1Qty, 0) + IsNull(M2Qty, 0) --相加計算
      

  4.   

    开始-->所有程序-->microsoft sql server-->联机帮助-->输入:isnull或round
      

  5.   

    程序--->sql 2005--->文档教程-->丛书