小弟初来乍到,对于delphi属于一知半解,目前朋友要求帮助写一个程序,要求如下
将公司每天所有员工的产量统计上来,然后进行排序,首先是在班组内从高到低显示,同时显示在车间内的名次,再显示在在全厂内的名次,这是每天的产量排序
    然后在同时将每月的产量排序,每天是指从月初到当天的累计产量,也按照班组\车间\厂这样的形式显示出来,请问高手该怎么做呢表格如下(工资按单价*产量)
编号 姓名 本日产量 工资 班组名次 车间名次 厂名次 本月产量 工资 班组名次 车间名次 厂名次
01   XXX    100   50.00  1          2       1     1000     500    1      1         2
02   XXX     99   49     2          1       2     1001     495    2      1         3

解决方案 »

  1.   

    select 编号 姓名 本日产量 工资 班组名次 车间名次 厂名次 本月产量 工资 班组名次 车间名次 厂名次
     from AAA order by 每月的产量排序
      

  2.   

    上面错了:select 厂名次, sum(本月产量), 工资, 班组名次, 车间名次, 厂名次 
    from table1
    where Datediff(mm,日期,getdate())=0 and Datediff(dd,日期,getdate())=0
    order by 本日产量 DESC
      

  3.   

    同时显示时该人在厂内\车间及班组的名次?直接select出来不就是嘛?我觉得楼主还是没有叙述清楚,你把想要的结果列出来看看
      

  4.   

    编号 姓名 本日产量 工资 班组名次 车间名次 厂名次 本月产量 工资 班组名次 车间名次 厂名次
    01   XXX    100   50.00  1          2       5     1050     500    3     1        1
    02   XXX     99   49.00  2          1       6     1081     495    2     2        2
    03   XXX     87   46.00  3          3      18      900     450    4     3        3
    04   XXX     80   44.00  4          4      20      881     405    5     6        5
    05   XXX     70   50.00  5          7      36     2000    1008    1     5        6
    06   XXX     69   419    6          8      1       560     295    6     4        4以上是要求的报表结果,其中班组名次\车间名次\厂名次,及后面的月班组名次\车间名次\厂名次,是由程序自动生成的,目前已有的资料为编号,姓名,本日产量,工资,
    本月产量是由本月的开始日期截止到本日的,
      

  5.   

    大致想了一下,希望对你有帮助一、先创建统计表:TJB  (数组也可以,但不如数据表容易做报表)
    二、字段为:
    1、序号:ID,自增;
    2、车间:CJ,Varchar(10)
    3、班组:BZ,Varchar(10)
    4、人员编号:BH,CHAR(4)
    5、人员姓名:XM,Varchar(20)
    6、本日产量:BRCL, Decimal(10,2)
    7、本日工资:BRGZ, Decimal(10,2)
    8、本日班组名次:BRBZMC, Integer
    9、本日车间名次:BRCJMC, Integer
    8、本日工厂名次:BRGCMC, Integer
    6、本月产量:BYCL, Decimal(10,2)
    7、本月工资:BYGZ, Decimal(10,2)
    8、本月班组名次:BYBZMC, Integer
    9、本月车间名次:BYCJMC, Integer
    8、本月工厂名次:BYGCMC, Integer
    三、填写TJB中的数据:(你应该有一个人员表workers(里面存储了人员编号,姓名,所属班组,所属车间...)和工作量表work(人员编号、产量,所得工资...)) 
    1、创建数据集:
    ADODateSet1.close;
    ADODateSet1.CommandText:='SELECT BH, SUM(CL) AS CL, SUM(GZ) AS GZ FROM Works WHERE (RQ BETWEEN :RQ1 AND :RQ2) GROUP BY BH';
    ADODateSet1.open;
    2、在数据集中进行排序:
    先按班组或车间过滤,然后ADODataSet1.Sort:='cl desc';按产量排序;
    3、写入统计表:
    主要是把ADODataSet1的数据顺序号写入相应的名次字段;(用一个变量记录也可)
    四、连续报表打印。
      

  6.   

    我先试试,谢谢 chenylin(陈SIR) 啦,小弟先去试了