SELECT 站号, 年, 月, AVG(均温) / 10 AS 均温, AVG(相对湿度) AS 相对湿度, AVG(高温) 
      / 10 AS 高温, AVG(低温) / 10 AS 低温, AVG(均压) / 10 AS 均压, AVG(高压) / 10 AS 高压, 
      AVG(低压) / 10 AS 低压, AVG(均风) / 10 AS 均风, AVG(大风) / 10 AS 大风
FROM 日对比差
WHERE (均温 <>32766) OR
      (高温 <>32766) OR
      (低温 <>32766) OR
      (均压 <>32766) OR
      (高压 <>32766) OR
      (低压 <>32766) OR
      (相对湿度 <>32766) OR
      (均风 <>32766) OR
      (大风 <>32766)
GROUP BY 站号, 年, 月
为什么,32766还是参与了计算结果
站号 年 月 均温 高温 低温 均压 高压 低压 相对湿度 均风 大风
51053 2005 12 0 0 0 0 0 0 0 0 0
51058 2006 1 0 3 0 0 0 0 0 0 3276
51058 2006 2 0 0 0 0 0 0 0 0 3276
51058 2006 3 0 0 0 0 0 0 0 105 3276
帮帮忙吧

解决方案 »

  1.   

    因为 OR 如果改成and 就不会出现了。
     
      

  2.   

    因为你是OR  用AND 试试
      

  3.   

    逻辑问题。OR表示或者,当然会出现了。改AND
      

  4.   


    这样试了~用AND以后 本来只有大风是32766,但是其他资料有数据就不参与计算了,这整一行数据没有了
      

  5.   

    (...  and    ....and    ...and  ..) or 大风<>32766
      

  6.   


    SELECT 站号, 年, 月, 
    case when 均温 <>32766 then AVG(均温) / 10 else 0 end AS 均温, 
    case when 相对湿度 <>32766 then AVG(相对湿度) else 0 end   AS 相对湿度, 
    case when 高温 <>32766 then AVG(高温)  / 10 else 0 end  AS 高温, 
    case when 低温 <>32766 then AVG(低温) / 10 else 0 end  AS 低温, 
    case when 均压 <>32766 then AVG(均压) / 10 else 0 end  AS 均压, 
    case when 高压 <>32766 then AVG(高压) / 10 else 0 end  AS 高压, 
    case when 低压 <>32766 then AVG(低压) / 10 else 0 end  AS 低压, 
    case when 均风 <>32766 then AVG(均风) / 10 else 0 end  AS 均风, 
    case when 大风 <>32766 then AVG(大风) / 10 else 0 end  AS 大风
    FROM 日对比差
    GROUP BY 站号, 年, 月
      

  7.   

    你给的数据全都是32766啊,要是全and当然会参与运算了.
      

  8.   

    (均温 <>32766) OR
          (高温 <>32766) OR
          (低温 <>32766) OR
          (均压 <>32766) OR
          (高压 <>32766) OR
          (低压 <>32766) OR
          (相对湿度 <>32766) OR
          (均风 <>32766) OR
          (大风 <>32766)表示只需满足一个字段<>32766,则该条就参与统计,但是这样得话不保证其它得字段也<>32767啊,不知道你想怎么样