我在做一报表
统计出每天的问题量问题一共有5种状态  第5种是关闭状态比如哈第1天创建了 5个问题,那么这一天的问题量就是5.第2天没有创建任何问题,前一天的5个问题有3个关闭了,那么这一天的问题量就是2.第3天创建10个问题,前一天的问题状态有改变带没关闭,今天创建的10个问题有7个关闭了,那么这一天的问题量就是5.单用SQL,我可以查出指定天数不含关闭状态的问题
我的解决方法是
用了4个ArrayList 存放第1天有效ID集的firstday存放每次累计后的问题量count存放循环时记录那一天存放临时数据
然后用SQL  取出问题开始的那一天的年月日和最后一次修改问题的那一天的年月日通过这第1天的年月日,把有效的ID集放入firstday中然后用3层循环for(int y=最小月;y<=最大月;y++)
``for(int m=1;m<=12;m++)
````for(int d=1;d<=31;d++)这里面我加了闰年2月份天数判断 和大小月天数判断 
我就是这样一天天查 一天天的不断累加
至少.........思路上OK了但运行时间太长>.<求个好的解决办法...............................

解决方案 »

  1.   

    为何不用SQL语句解决呢?select count(*) from MyQuestion where datetime between ? and ? and status=5
      

  2.   

    嗯 用sql语句限制吧 
    between and
      

  3.   

    按照楼主的意思就是统计出当前所有未关闭的问题量吗?
    select count(1) from MyQuestion where datetime between ? and ? and status!=5
    不就成了吗?难道还有什么特殊要求? 
      

  4.   

    表结构不能改...........
    问题情况是这样的比如说N天后的某天问题情况
    问题ID--------问题状态-------修改时间
    1000-----------2-----------上午9点8分9秒
    1000-----------4-----------上午10点7分58秒
    1001-----------5-----------下午1点10分
    1009-----------3-----------下午2点
    1009-----------2-----------下午3点
    就这一天而言有效的ID  只有
    1000-------4 
    1009-------2
    而且是前一天没关闭的问题要继续算做第2天的问题啊第2天这些没解决 要算到第3天的头上between 怎么可能解决的了  ....
      

  5.   

    写个复杂点的SQL就解决了,你那样还3个for(),能不慢吗?
      

  6.   

    你这个有效ID是个什么意思.....我就没想明白,between怎么解决不了...
    呵呵,可能没大理解你的需求吧