数据表结构:区域---------时段---------平均值
上海---------上午---------11.11
广州---------上午---------12.11
上海---------下午---------13.11
广州---------下午---------14.11需要得到结果为:
区域---------上午---------下午
上海---------11.11--------13.11
广州---------12.11--------14.11谢谢

解决方案 »

  1.   

    select 区域,
    sumif(if(时段='上午'),平均值,0) as 上午,
    sumif(if(时段='下午'),平均值,0) as 下午
    from 数据表结构
    group by 区域
      

  2.   

    ps: 2楼我试了,但是为什么修改字段后无法运行,还请指导;附上建表语句:
    CREATE TABLE t_user_detail (
    detail_id INT NOT NULL COMMENT '明细id',
    ddatetime VARCHAR(10) COMMENT '日期',
    time_interval SMALLINT COMMENT '时段(1:上午;2:下午;3:上半夜;4:下半夜;)',
    scope VARCHAR(50) COMMENT '区域',
    person_time INT COMMENT '人次',
    people_number INT COMMENT '人数',
    avg_number NUMERIC(18,2) COMMENT '平均人数',
    Than_stay NUMERIC(18,2) COMMENT '驻留比',
    CONSTRAINT PK_T_user_detail PRIMARY KEY (detail_id)
    );查询结果(各个区域在各个时段的平均人数)应该是:
    -------------------------------------------
    区域   上午  下午   上半夜   下半夜等待大家的回复,谢谢!!!
      

  3.   

    贴出你的SQL语句和错误信息以供分析。
      

  4.   


    SELECT scope,
        sumif(IF(time_interval='上午'),avg_number,0) AS 上午,
        sumif(IF(time_interval='下午'),avg_number,0) AS 下午
    FROM t_user_detail
    GROUP BY scope;控制台信息:
    Query : select scope,     sumif(if(time_interval='上午'),avg_number,0) as 上午,     sumif(if(time_interval='下午'),avg_number,0) a...Error Code : 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '),avg_number,0) as 上午,
        sumif(if(time_interval='下午'),avg_number,0) as' at line 2Execution Time : 00:00:00:000
    Transfer Time  : 00:00:00:000
    Total Time     : 00:00:00:000
    ---------------------------------------------------
      

  5.   


    刚才贴错了,sql语句我是这样:SELECT scope,
        sumif(IF(time_interval=1),avg_number,0) AS 上午,
        sumif(IF(time_interval=2),avg_number,0) AS 下午
    FROM t_user_detail
    GROUP BY scope;
      

  6.   

    sum(IF(time_interval='上午',avg_number,0)) AS 上午,
      

  7.   

       sumif(IF(time_interval=1),avg_number,0)) AS 上午,
      

  8.   

    ACMAIN_CHM, 请问sumif是什么函数吗?好像无法使用,在查询框没有变色。。WWWWA这个我试了下,查询一天的统计应该是行,其他问题我自己考虑下吧,谢谢你们了
      

  9.   

    select 区域,
        sumif(if(时段='上午',平均值,0—)) as 上午,
        sumif(if(时段='下午',平均值,0)) as 下午
    from 数据表结构
    group by 区域