需要从一个监测数据库提取相关数据,表如下:
AZWZ PJZ ZDZ BCSJ(保存时间)
    
22118采面 0.33 0.34 2010-1-1 0:00:00
    
1330采面 0.33 0.34 2010-1-1 0:00:00
    
22153回风巷 0.33 0.34 2010-1-1 0:00:00
    
223水仓 0.33 0.34 2010-1-1 0:00:00
    
22118采面 0.33 0.34 2010-1-1 0:05:00
    
1330采面 0.33 0.34 2010-1-1 0:05:00
    
22153回风巷 0.33 0.34 2010-1-1 0:05:00
    
223水仓 0.33 0.34 2010-1-1 0:05:00  上面的表是省略后的。每隔5分钟记录一次,从2010-1-1 00:00:00到2010-1-1 23:55:00,这只是1天的。这个数据库保存了2年的记录,数据量很庞大。
  我想按AZWZ来提取PJZ, ZDZ,BCSJ,由于数据量大,PJZ和ZDZ只按1天的平均值算,BCSJ按天显示。提取数据后的表格如下:
AZWZ               PJZ          ZDZ              BCSJ
22118采面      按1天平均值算   按1天平均值算     2010-1-1
22118采面      按1天平均值算   按1天平均值算     2010-1-2
1330采面       按1天平均值算   按1天平均值算     2010-1-1
1330采面       按1天平均值算   按1天平均值算     2010-1-2

解决方案 »

  1.   

    select
      azwz,avg(pjz) as pjz,avg(zdz) as zdz,
      conver(varchar(10),bcsj,120) as bcsj
    from
      tb
    group by
      azwz,conver(varchar(10),bcsj,120) as bcsj
      

  2.   


    --修改
    select
      azwz,avg(pjz) as pjz,avg(zdz) as zdz,
      conver(varchar(10),bcsj,120) as bcsj
    from
      tb
    group by
      azwz,conver(varchar(10),bcsj,120) 
      

  3.   

    在sql server 2005里面运行了下  出现如下错误:'varchar' 不是可以识别的 内置函数名称
      

  4.   


    select
      azwz,avg(pjz) as pjz,avg(zdz) as zdz,
      convert(varchar(10),bcsj,120) as bcsj
    from
      tb
    group by
      azwz,convert(varchar(10),bcsj,120) 
      

  5.   


    --掉了个T
    select
      azwz,avg(pjz) as pjz,avg(zdz) as zdz,
      convert(varchar(10),bcsj,120) as bcsj
    from
      tb
    group by
      azwz,convert(varchar(10),bcsj,120) 
      

  6.   

    可以运行了,我加了一条条件语句,where azwz='22183采面T0',显示如下:
    AZWZ             PJZ             ZDZ             BCSJ
    22183采面T0 0.221875 0.232395 2010-01-15
    22183采面T0 0.246701 0.260381 2010-01-26
    22183采面T0 0.221597 0.231805 2010-01-21
    22183采面T0 0.231620 0.246448 2010-01-27
    22183采面T0 0.226602 0.236525 2010-01-23
    22183采面T0 0.221006 0.231284 2010-01-19
    22183采面T0 0.218715 -242.826805 2010-01-10
    22183采面T0 0.223472 0.233020 2010-01-22
    22183采面T0 0.232013 -346.966770 2010-01-31
    22183采面T0 0.228472 0.238472 2010-01-09
    日期能不能按顺序显示,从2010-01-1到2010-01-31
      

  7.   


    insert into resulttb
    select
      azwz,avg(pjz) as pjz,avg(zdz) as zdz,
      conver(varchar(10),bcsj,120) as bcsj
    from
      tb
    group by
      azwz,conver(varchar(10),bcsj,120) as bcsj偷一下楼上的sql ~~!
    这种数据整理我做过,建议lz 按照时间段分段执行sql 整理数据。。不然的话成千万的的数据会有点慢
      

  8.   

    select
      azwz,avg(pjz) as pjz,avg(zdz) as zdz,
      convert(varchar(10),bcsj,120) as bcsj
    from
      tb
    where
     azwz='22183采面T0'
    group by
      azwz,convert(varchar(10),bcsj,120) 
    order by 4