SELECT a.*, b.HITS_COUNT AS Expr1, b.IP_COUNT AS Expr2, 
      isnull(a.VISIT_COUNT,0) + isnull(b.HITS_COUNT,0) AS Expr3
FROM STAT_DAY_REPORT a LEFT OUTER JOIN
      STAT_MMS_REPORT b ON YEAR(a.VISIT_DATE) = YEAR(b.VISIT_DATE) AND 
      MONTH(a.VISIT_DATE) = MONTH(b.VISIT_DATE) AND DAY(a.VISIT_DATE) 
      = DAY(b.VISIT_DATE)

解决方案 »

  1.   

    SELECT a.*, b.HITS_COUNT AS Expr1, b.IP_COUNT AS Expr2, 
          isnull(a.VISIT_COUNT,0) + isnull(b.HITS_COUNT,0) AS Expr3
    FROM STAT_DAY_REPORT a LEFT OUTER JOIN
          STAT_MMS_REPORT b ON YEAR(a.VISIT_DATE) = YEAR(b.VISIT_DATE) AND 
          MONTH(a.VISIT_DATE) = MONTH(b.VISIT_DATE) AND DAY(a.VISIT_DATE) 
          = DAY(b.VISIT_DATE)
      

  2.   

    isnull(表达式,0) 可以避免加null
      

  3.   


           a.VISIT_COUNT + isnull(b.HITS_COUNT,0) AS Expr3
      

  4.   

    可以用ISNULL(字段,0)
    如果该字段为NULL值的时候,就为0了
      

  5.   

    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。
      

  6.   

    SELECT a.*, b.HITS_COUNT AS Expr1, b.IP_COUNT AS Expr2, 
          isnull(a.VISIT_COUNT,0) + isnull(b.HITS_COUNT,0) AS Expr3
    FROM STAT_DAY_REPORT a LEFT OUTER JOIN
          STAT_MMS_REPORT b ON YEAR(a.VISIT_DATE) = YEAR(b.VISIT_DATE) AND 
          MONTH(a.VISIT_DATE) = MONTH(b.VISIT_DATE) AND DAY(a.VISIT_DATE) 
          = DAY(b.VISIT_DATE)
      

  7.   

    如果你第一个表里面没有空值就
    SELECT a.*, b.HITS_COUNT AS Expr1, b.IP_COUNT AS Expr2, 
          a.VISIT_COUNT+ isnull(b.HITS_COUNT,0) AS Expr3
    FROM STAT_DAY_REPORT a LEFT OUTER JOIN
          STAT_MMS_REPORT b ON YEAR(a.VISIT_DATE) = YEAR(b.VISIT_DATE) AND 
          MONTH(a.VISIT_DATE) = MONTH(b.VISIT_DATE) AND DAY(a.VISIT_DATE) 
          = DAY(b.VISIT_DATE)