select 托盘编号,零件图号,操作人,收货批次,生产批次,期初数量,期末数量,出入数量,日期
from (select dt 日期, 托盘编号,操作人,零件图号,收货批次,生产批次,lag(sumqty,1) over(order by dt) 期初数量,
sumqty +lag(sumqty,1,0) over(order by dt) 期末数量,
(lag(sumqty,1) over(order by dt))-(sumqty +lag(sumqty,1,0) over(order by dt)) 出入数量
from (select to_char(operat_date,'yyyy-mm-dd') dt,sum(decode(operat_type,'入库',qty,'出库',-qty)) sumqty,
pallet_code 托盘编号 ,material_code 零件图号,OPERAT_MAN 操作人,max(RECEVIE_BATCH_CODE) 收货批次,max(MADE_BATCH_CODE)生产批次
from wms_u_merge_pallet_record group by pallet_code,material_code,OPERAT_MAN,to_char(operat_date,'yyyy-mm-dd')))
where 日期 between '2010-11-25' and '2010-11-25'  在delphi6中执行这条语句报错消息为 : ORA-00979 不是GROUP BY 表达式急...求解在pl/sql是报错的

解决方案 »

  1.   


    select 日期,托盘编号,期初数量,期末数量,零件图号,操作人,生产批次,收货批次
    from (select dt 日期,托盘编号,lag(sumqty,1) over(order by dt) 期初数量,零件图号,操作人,生产批次,收货批次,
    sumqty +lag(sumqty,1,0) over(order by dt) 期末数量
    from (select to_char(operat_date,'yyyy-mm-dd') dt,sum(decode(operat_type,'入库',qty,'出库',-qty)) sumqty
    ,pallet_code 托盘编号,material_code 零件图号,OPERAT_MAN 操作人,
    max(RECEVIE_BATCH_CODE) 收货批次,max(MADE_BATCH_CODE)生产批次
    from wms_u_merge_pallet_record 
    group by pallet_code,material_code,OPERAT_MAN,to_char(operat_date,'yyyy-mm-dd')))
    where 日期='2010-11-25'
      

  2.   

    楼主单独执行这个子查询会报错吗?
    select to_char(operat_date,'yyyy-mm-dd') dt,sum(decode(operat_type,'入库',qty,'出库',-qty)) sumqty ,
                      pallet_code 托盘编号,material_code 零件图号,OPERAT_MAN 操作人,max(RECEVIE_BATCH_CODE) 收货批次,
                      max(MADE_BATCH_CODE)生产批次
               from wms_u_merge_pallet_record  
               group by pallet_code,material_code,OPERAT_MAN,to_char(operat_date,'yyyy-mm-dd')
      

  3.   

    单独执行的不会报错..但是delphi里就出错了..我在查看
      

  4.   

    是不是工具原因?在SQLPLUS中执行能过吗?
      

  5.   

    但是我在delphi抓我的sql的时候   语句一样的