我有一个数据表,表结构如下
datetime | t(温度)| p(湿度)
2008-06-06 01:00:00 | 19 | 50
2008-06-06 02:00:00 | 21 | 80
2008-06-06 03:00:00 | 20 | 40我想用一条语句查出温度和湿度的最大值最小值及温度、湿度最大值、最小值出现的时间。请高手指教... 

解决方案 »

  1.   

    SELECT A.* FROM TT A
    LEFT JOIN
    (SELECT MAX(温度) AS WMA,MIN(温度) AS WMI,MAX(湿度) AS SMA,MIN(湿度) AS SMI FROM TT) B
    ON A.温度=WMA
    LEFT JOIN TT C ON B.WMI=C.温度
    LEFT JOIN TT D ON B.SMA=D.湿度
    LEFT JOIN TT E ON B.SMI=E.湿度
      

  2.   

    我觉得没必要使用左连接,会降低效率的。直接
    select time,t from wendu where t=(select max(t) from wendu);
      

  3.   


    .
        [align=center]====  ====
    [/align]
    .
    贴子分数<20:对自已的问题不予重视。
    贴子大量未结:对别人的回答不予尊重。
    .
      

  4.   


    select a.t as t_max, a.datetime as t_max_time,
           b.t as t_min, b.datetime as t_min_time,
           c.s as s_max, c.datetime as s_max_time,
           d.s as s_min, d.datetime as s_min_time 
    from 
    (select t, datetime from table1 where t=(select max(t) from table1)) a, 
    (select t, datetime from table1 where t=(select min(t) from table1)) b, 
    (select s, datetime from table1 where s=(select min(s) from table1)) c, 
    (select s, datetime from table1 where s=(select min(s) from table1)) d
      

  5.   

    另外说一下
    建表时不要以关键字作为字段名
    比如 datetime以上结果可以进行行列转换一下 那样更直观
    不过我不太会