我想实现的报表是对温度值的监测,每小时取一个值
点号  类型  单位  1:00  2:00  3:00  4:00
11    温度  摄氏度  ?  ?     ?     ?
现在问题是每隔几秒就把温度值写入数据库,要取出每小时的平均值,应该怎么写sql语句?1:00的值在ireport中怎么设?$f{}不行,用什么
谢谢指教,如果用javabean怎么写? 

解决方案 »

  1.   

    复杂报表不要手写,直接拖拽: http://www.finereport.com
      

  2.   

    大体思路是程序里动态生成sql脚本,作为$P!{xxx}传进去构成完整sql语句,在程序里控制double的精度,ireport里有个patten可以设置显示形式但不好用不推荐使用
      

  3.   

    有什么疑问可以email:[email protected]
      

  4.   

    大体思路:
    1)建表
    DH   CHAR(2)       NOT NULL,  --点号
    WD   NUMERIC(3,2)  NOT NULL,  --温度
    DW   VARCHAR(10)   NOT NULL,  --单位
    LTS  DATETIME      NOT NULL,  --时间戳
    CREATE UNIQUE INDEX index_name ON table_name (DH,LTS)
    2)每隔几秒钟就写入一条数据
    ALTER/INSERT......
    不同的数据库语句不同:sybase用ALTER,mysql等用INSERT,省略。
    3)SELECT SUM(*)/COUNT(*) AS AVERAGE FROM TABLE_NAME WHERE DH>X1 AND DH<X2
    4)在iReport中应该用$P{PARAMETER_NAME},不该用$F{FIELD_NAME}。很多细节忽略了:如iReport中的数据库连接,SQL语句等等。