select c.xm,c.dwm,c.grbh,c.部门,a.*,平均数=a.all2003/b.bb,月数=b.bb from (SELECT  dh,
    SUM(CASE 年月编号 WHEN '20030101' THEN 应付工资 ELSE 0 END) AS '20030101', SUM(应付工资) as 'all2003'
    FROM GZZB   GROUP BY dh)  as a,(select  dh,aa=max(年月编号),bb=count(distinct substring(年月编号,1,6)),
cc=count(dh) from gzzb group by dh) as b ,gzzb c  where a.dh=b.dh and a.dh=c.dh and b.aa=c.年月编号
order by c.dwm,c.部门,c.xm由于本人刚刚从BDE转到ADO, 可能是一个很基础的问题引起的错误。

解决方案 »

  1.   

    ADO在Open之前要先Close一下的,BDE就不用,是否是这方面的问题?
      

  2.   

    我用的是SQL server7.0,提示的错误是:未指定的错误
      

  3.   

    CREATE TABLE [dbo].[gzzb] (
    [年月编号] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [BJ] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
    [DWM] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
    [DH] [char] (19) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [XM] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
    [姓名] [varchar] (6) COLLATE Chinese_PRC_CI_AS NULL ,
    [GRBH] [varchar] (6) COLLATE Chinese_PRC_CI_AS NULL ,
    [部门] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [无补贴工资] [decimal](18, 3) NULL ,
    [技能工资] [decimal](18, 3) NULL ,
    [岗位工资] [decimal](18, 3) NULL ,
    [价位工资] [decimal](18, 3) NULL ,
    [活工资] [decimal](18, 3) NULL ,
    [其它工资] [decimal](18, 3) NULL ,
    [补发工资] [decimal](18, 3) NULL ,
    [应付工资] [decimal](18, 3) NULL ,
    [福利补贴] [decimal](18, 3) NULL ,
    [应付小计] [decimal](18, 3) NULL ,
    [独子女费] [decimal](18, 3) NULL ,
    [扣抵押金] [decimal](18, 3) NULL ,
    [房租] [decimal](18, 3) NULL ,
    [扣住宿费] [decimal](18, 3) NULL ,
    [扣所得税] [decimal](18, 3) NULL ,
    [扣公积金] [decimal](18, 3) NULL ,
    [扣教育费] [decimal](18, 3) NULL ,
    [扣养老金] [decimal](18, 3) NULL ,
    [扣医疗金] [decimal](18, 3) NULL ,
    [扣失业金] [decimal](18, 3) NULL ,
    [其它] [decimal](18, 3) NULL ,
    [扣会费] [decimal](18, 3) NULL ,
    [实发金额] [decimal](18, 3) NULL 
    ) ON [PRIMARY]
    GO我只用了这一个表,这是个做工资的程序,由于程序想由网络数据库改为桌面数据库,我将这个表改到ACCESS数据库中,也许这个错误是因为ACCESS引起的。