select cgicode from (select '1' sortflag,
  pt.cgicode,
  '1' cgcode,
  pt.cgcode code, 
  c.gnamedesc,
  pt.orderclass,
  stockyear || '-' || stockmonth as instoredat,
  0 qty,  
      sum(fcy * vdc) as fcy,
      0 currtupric,
      0 rtupric,
      pt.affirmdate
      vdc,
      --pt.destccode,
      pt.pricetype,
      0 num
   from  priceadjust pt, cgcode c
 where pt.cgicode = c.cgicode
   and c.ccode = '4AE0'
   and pt.fcode = 'RMB'
   and  vdc='-1'
   and pt.pricetype='02'
   and pt.cgcode = 'KFC0000004'
    group by pt.cgicode,pt.cgcode,pt.orderclass,
  stockyear, stockmonth,pricetype, vdc,c.gnamedesc,pt.affirmdate order by pt.cgicode 
  
  union all
  
  
  
  select 'a' sortflag,
       pl.cgicode,
       --tradebody,
       case
         when pl.cgcode is null then
          '合计'
         when pl.cgcode is not null and pl.cgicode is null then
          '小计'
         else
          '' || pl.cgcode
       end cgcode,
       pl.cgcode code,
       gnamedesc,
       orderclass,
       stockyear || '-' || stockmonth as instoredat,
       qty,
      sum(fcy * vdc) as fcy,
       currtupric,
       rtupric,
       affirmdate,
       pricetype,
       vdc,
      -- adjustflags,
       rownum num
  from priceadjust pl, cgcode c
 where pl.cgcode = c.cgcode
   and c.ccode = '4AE0'
   and pl.fcode = 'RMB'
   and pl.cgicode = 'KFC0000004'
 group by GROUPING SETS((pl.cgcode),(pl.cgcode,  pl.cgicode, c.gnamedesc, pl.orderclass,
  stockyear, stockmonth, qty, vdc, currtupric, rtupric, affirmdate, pricetype,vdc , rownum),())
  
  ) aa以上SQL语句说,缺少右括号,为什么啊

解决方案 »

  1.   

    union all前面的order by 去掉
    要排序的话也要放到末尾
      

  2.   

    我把order by 去掉以后,提示ORA-01789查询快具有不正确的结果列数,为什么呢
      

  3.   

    ..union前面有14列,后面有15列
    列数和类型都要匹配
      

  4.   

    我觉得这个sql文有点麻烦,谁有简单的sql文呢,就是把先把pricetype='02' and vdc='-1' 求sum(fcy * vdc)的和,让后在按关联字段cgicode分组,求小计,合计
      

  5.   

    pricetype='02' and vdc='-1' 是什么意思
    按几种方式分组求sum(fcy * vdc),规则是怎么样的
    能不能给个简单点的例子,我写个试试
      

  6.   

    wildwave兄弟 高质量的快速反应部队。赞一个。
      

  7.   

    pricetype代表类型,vdc=1:入库,vdc=-1:出库,也就是零件pricetype='02‘表示组合零件入库出库,pricetype='01'表示散件入库,出库,sum(fcy*vdc)表示入库,出库数量的合计,我想要的sql文是
    组合零件出库的合计,再加上入库的明细,这两的小计(按cgcode:零件编码小计),让后总的零件的合计,就是这么一个sql文