SELECT a.did, CASE COUNT(b.DID) WHEN 0 THEN '×' ELSE '●' END "是否适用"
FROM DEVICE_MASTER a, STATION_STATUS b

解决方案 »

  1.   

    没有 group by a.did
      

  2.   

    用了聚合函数就需要 group by  a.did
      

  3.   

    楼上两位正解 用count sum一类的聚合函数 必须要group by
    还有 你的两个表之间没有关联 这样数据量会很大
    假设A表有1万数据 B表有1万 不加条件的话 查询结果是1亿 数据库会挂的
      

  4.   

    关于使用聚合函数的限制:如果查询中包含一个聚合函数,而所选择的列并不在聚合函数中,则这些列就必须在group by 子句中。
    换句话,就是说如果在一个查询中使用了聚合函数,则所选择的列一定是聚合函数中的列或者是出现在group by子句中的列,其它的列不允许被查询。
      

  5.   

    SELECT a.did, CASE COUNT(b.DID) WHEN 0 THEN '×' ELSE '●' END "是否适用"
    FROM DEVICE_MASTER a, STATION_STATUS bGROUP BY a.did  
      

  6.   

    (错例)select a, b, c,sum(d),e, from dual;
    其他没有用函数修饰的最后都必须有group by ,所以上例应为:
    select a, b, c,sum(d),e, from dual group by a,b,c,e;