SELECT COUNT(*),
(SELECT CASE WHEN f_AJMLH IS NULL THEN '' ELSE f_AJMLH END ||'-'|| CASE WHEN f_AJSXH IS NULL THEN '' ELSE cast(f_AJSXH as varchar2(50)) END as f_ajh FROM foa_DA 
WHERE ID = '-13' )
FROM foa_DA 
ora-00937 : not a single-group group function..

解决方案 »

  1.   

    count是分组统计查询。 是需要在group by或者over里出现的。
      

  2.   

    count是分组统计查询(聚合函数)。 是一定需要在最后group by <字段名>
    除了COUNT,还有SUM、MAX等等都是聚合函数。简单的说一句:只要有聚合函数就一定要加上group by <字段名>
      

  3.   


    不知道你具体想要的逻辑如果你只是对foa_DA所有记录进行统计的,并且子查询只是单独的一条记录做description的话,这个语句可以改成
    SELECT COUNT(*), f_ajh
    FROM foa_DA, (SELECT CASE WHEN f_AJMLH IS NULL THEN '' ELSE f_AJMLH END ||'-'|| CASE WHEN f_AJSXH IS NULL THEN '' ELSE cast(f_AJSXH as varchar2(50)) END as f_ajh FROM foa_DA 
    WHERE ID = '-13' ) temp group by f_ajh
      

  4.   


    好像这样不是很好,修改一下 这样好一些select * from (SELECT COUNT(*)
    FROM foa_DA), (SELECT CASE WHEN f_AJMLH IS NULL THEN '' ELSE f_AJMLH END ||'-'|| CASE WHEN f_AJSXH IS NULL THEN '' ELSE cast(f_AJSXH as varchar2(50)) END as f_ajh FROM foa_DA 
    WHERE ID = '-13' )