一个极其具有挑战性的问题!(1000分相送,不够再加)
已知:有5种蛋糕,每种蛋糕每天的价格都有可能不相同,100个蛋糕店为这5种蛋糕提供价格。
提问:用何种方式知道某一段时间里面某种蛋糕的平均价最低的3个蛋糕店提示:
可能的情况有:001号蛋糕店录入第1种蛋糕数据蛋糕编号  价格  蛋糕店编号   时间段(按具体时间)                时间段(按周数)
001       5.2   098          2004-8-2,2004-8-3,2004-8-6     
002       5.3   022          2004-9-9,2004-9-13,2004-10-6 
001       5.7   031                                              2004-8-2,2004-9-1|5,6,7
001       5.9   016                                              2004-6-2,2004-12-1|5,6
001       5.2   051          2004-7-1                       
004       5.0   100          2004-8-2,2004-8-3,2004-8-6     
001       5.2   078                                              2004-1-1,2004-12-31|5,6
001       5.2   051          2004-8-2,2004-8-3,2004-8-6,2004-8-7时间短(按具体时间):就是可以录入具体某一天的时间,可以是30个日期或者更多
时间段(按周数)    :就是根据某一个起止日期内的所有星期数有什么办法知道以上数据在2004-8-1到2004-9-1这段时间内谁哪三个蛋糕店提供的价格(平均价)最低呢。目前已经知道如何去做,但是执行效率极其低下。可以重新建立表,可以添加新的字段。
请各位不惜赐教。msn: [email protected]
q q: 129071

解决方案 »

  1.   

    日期字段是一个时间段,或者一个时间段里面的所有星期一或者任一一个星期?谢谢:windindance(风舞轻扬)liufuyahong() ( ) 信誉:100  的回复
    忘记说了,表结构不能修改。否则整个系统会重做。2000多个ASP程序啊,老大们!~!如果有10000种产品,1年365天,1000个供应商提供每天的价格。如果按照各位老大的方法(日期放一个字段),数据库里面就会有 10000X365X1000 = 3650000000 那数据库里面,光价格就有36亿条记录,估计要老板要把数据库换大型机才能跑。而上面我说的情况是有的。
      

  2.   

    Re: bzszp(www.bzszp.533.net) ( ) 信誉:138 实际上我的问题是一个关于酒店房价和订房公司的问题,只是引申过来的。至于“每个供应商每天都要对10000个产品报价??”这种业务问题不用考虑。
      

  3.   

    非常感谢各位大大:基本上已经定为各位大大提供的三种意见思路是这样的
    1、首先,不修改目前数据表结果,新建一个表做为存放价格数据的临时表,主要是把日期格式化一下便于索引和统计
    2、该表只能存放当天之后30天的数据记录
    3、数据录入程序仍然按照以前的,然后在该数据录入的程序中添加一个 处理过程。(该过程:将当前价格信息格式化之后存放到刚才建立的临时表中)
    4、查询和统计使用临时表,临时表中的小于当天的历史数据需要每天执行一个程序删除。
    这种思路来源于
    chump(木人) 
    http://community.csdn.net/Expert/topic/3331/3331690.xml?temp=.5929376zjcxc(邹建) txlicenhe(马可) 
    http://community.csdn.net/Expert/topic/3331/3331687.xml?temp=.4018824可惜我对维度不熟悉另外有
    windindance(风舞轻扬) ( ) liufuyahong() ( ) 
    http://community.csdn.net/Expert/topic/3331/3331696.xml?temp=4.078311E-02crankfe(crank)
    http://community.csdn.net/Expert/topic/3331/3331688.xml?temp=.3809473
    还有一下大大的我看的不是很懂,看上去好像非常不错
    qimini(循序渐进) ( ) 信誉:106 
    http://community.csdn.net/Expert/topic/3331/3331688.xml?temp=.3809473
    希望大大们综合一下,最终搞个结论出来,今天结贴。综合的好的,每人1000分。其余各献计献策的都有分送。谢谢各位的支持。
    另外,惨痛的教训就是廉价的程序员和DBA会导致系统要用数百倍的价格来补偿。
      

  4.   

    在Oracle中的临时表没有像SQL Server的临时表那么好用。所以在Oracle中用临时表不太可取。zjcxc(邹建)也是建议改表结构。和我们的思路一样。改吧!!
      

  5.   

    临时表可能不太好用,因为临时表是基于事务与会话的.
    不知你的临时表是什么概念.
    我认为只要写一个涵数,根据要求过滤出一段日期或某一日期.
    难点在于这个函数过滤出符合条件的记录数.
    然后用rank函数进行计算得出.
      

  6.   

    接分,原因
    http://community.csdn.net/Expert/topic/3331/3331687.xml?temp=.4018824