我现在有个数据源(表一)
 结构为:
   计提月份,班次,线路,司机号,营运日期,里程数,车次数,客运人次,客运收入要得到的结果(表二),主要是算出司机的计提
 结构为:
   计提月份,司机号,计提数问题是计提方案有好多,各条线路都不同,而且每个月都有新方案或必变方案。所以设计的时候可能只能考虑动态设计方案。
   我列举一个方案吧:
      计提=(线路总客运收入*0.7/线路总车次数)*司机车次数谁能帮我解决这个问题,送你2000分,如果不够再加

解决方案 »

  1.   

    用什么数据库的?
    如果是大数据库,如SqlServer,就可以在数据库中建一个表存 计提的计算公式。
    要是简单数据库的话,使用一个脚本控件,可以是Delphi 的,也可以是别的,动态改变脚本来改变计提计算公式。
      

  2.   

    flyingkiller(大飞虫)说的不错,对于动态的公式你可以设计一个表辅助存储公式(可能要再使用一个表存储公式参数)。
    但是要是只是参数不一样设计的表只需要记录参数了,这样编程也就简单些。
      

  3.   

    to  ihihonline(小小->沉沦中..........) 
    我看到实质了,就是司机的提成奖金  :)
    钱当然值2000分了
      

  4.   

    先建一个View(举例)
    Creatr View LineMonth as
    (select 计提月,线路,SUM(车次),SUM(客运收入) from "该表" group by 线路,计提月)
    然后关联
    建出一个新View,(就是你要的结果).
    如:计提月份,司机号,计提数
    然后在Delphi中只调用最后的View.如要改.只要在数据库中改View的语句就行了(不破坏View的结构).
      

  5.   

    用一个表存储计算公式,可以配置的然后取出来用脚本控件计算关于脚本使用:http://expert.csdn.net/Expert/TopicView1.asp?id=1818477
      

  6.   

    這個問題不是很難吧。2000分??????
    1﹑建一個公式表不就搞定了。(計提月份month,計提公式gs)
      假設在表1中﹕计提月份,班次,线路,司机号,营运日期,里程数,车次数,客运人次,客运收入  分別用﹕month,bc,xl,sjh,rq,lcs,ccs,kyrc,kysr來表示。
      比如﹕在公式表中建一個公式﹕(假設表為tab_gs)
    (先用group by month,sjh 對表1進行分組,假設得到的是tab2,
        但在tab2中一定要有kysr﹐ccs字段)
      month=200306  
      gs=(sum(kysr)*0.7/sum(ccs))*ccs
      
    想得出計提不是很簡單了﹕
      declare @gs varchar(100),@sql varchar(200)
      set @gs=gs from tab_gs where month='月份'
      set @sql='select  ' + @gs + ' from tab2 into 表2'   -----(表2就是你所需要的表)
      exec(@sql)
      

  7.   

    1 在表中设计一个计算字段,需要更改计算公式时调用alter table修改该列
    2 用视图,需要更改计算公式时重新构建view
    3 用存储过程,利用动态sql 语句,将公式存到某一个表,查询时动态运行
    比如
    declare  @a varcahr(2000)
    select @a = '计提=(线路总客运收入*0.7/线路总车次数)*司机车次数'
    exec ('select *,' + @a + 'from table')