我在做一个工资管理软件,使用access数据库,要实现一个部门汇总查询,涉及到:部门表(bmb)、工资表(gzb)。其中工资表中主有gzb_rq(日期)、gzb_bmbh(部门编号)、gzb_rybh(人员编号)、gzb_rymc(人员名称)、gzb_zwgz(职务工资).....gzb_sfgz(实发工资)字段 ,部门表有 bmb_bh(编号)、bmb_mc(名称)
希望的查询结果如下:
部门编号   部门名称   部门人数   职务工资 ,,,,应发工资
1           财务部    10         2000.00,,,,40000
2           办公室    5          1000.00 ,,, 60000  我定义了ado记录集,sql语句: select bmb_bh,bmb_mc ,count(gzb_rybh),sum(gzb_zwgz),,,sum(sfgz) from bmb,gzb where bmb_bh=gzb_bmbh and gzb_rq='日期变量' group by gzb_bmbh ordre by gzb_bmbh
提示出错
请大侠出手相助!!!!

解决方案 »

  1.   

    select gzb_bmbh,bmb_bh,bmb_mc ,count(gzb_rybh),sum(gzb_zwgz),sum(sfgz) from bmb,gzb where bmb_bh=gzb_bmbh and gzb_rq='日期变量' group by bmb_bh,bmb_mc ,gzb_bmbh ordre by gzb_bmbh你的gzb_bmbh没有添加到select里面,而且bmb_bh,bmb_mc 没有group by
      

  2.   

    对了,另外查询两个表的话要在字段前面加表名称,例如:select 表A.字段A, 表B.字段B from 表A,表B
      

  3.   

    select 
      bmb.bmb_bh,
      bmb.bmb_mc ,
      count(gzb.gzb_rybh),
      sum(gzb.gzb_zwgz),
      sum(gzb.sfgz) 
    from 
      bmb,
      gzb 
    where 
      bmb.bmb_bh=gzb.gzb_bmbh and 
      gzb.gzb_rq='日期变量' 
    group by 
      bmb.bmb_bh,
      bmb.bmb_mc 
    ordre by 
      bmb.bmb_bh
      

  4.   

    to ffly(鱼) 
    我也判断是sum不能和普通字段同查,但不敢肯定
    请问我如何解决这个问题,我希望把结果写入马上mshflexgrid
    谢谢
    也感谢TechnoFantasy(www.applevb.com)
      

  5.   

    计算字段(sum,count等)当然可以和普通字段同查了,只要将非计算字段group by一下就可以了。
      

  6.   

    to TechnoFantasy(www.applevb.com) 
    我把你修改后的sql语句放在adodc 控件的recordsource内(其中日期给了个定值),然后联结datagrid ,先提示:
        语法错误(操作符丢失)在查询表达式‘bmb.bmb_mc order by bmb.bmb_bh’中
    我干脆把order by bmb.bmb_bh 去掉,结果显示:驱动程序错误,期待参数是1
    请大侠在给看看!!
      

  7.   

    因为某个查询的字段在表中没有,所以当成参数了。可能是bmb_bh字段。
      

  8.   

    首先认为字段定义很难记啊,建议换成英文意义的,尽量少点下划线。
    问题出在group by gzb_bmbh这句,如果group by的话,那么只能显示两个字段了吧,就是gzb_bmbh和sum(gzb_bmbh)