T1中的字段说明:
bus车号标矢
d1驾驶1
d1times驾1开的次数
d2驾驶2
d2times驾2开的次数
date日期数据如下:
bus    d1    d1times    d2    d2times  date
5421   bob     3        tom     2      2008-7-30
2034   alan    4        tom     1      2008-8-5
1235   dan     2        alan    2      2008-8-20
4546   lonk    5        tom     2      2008-8-30求SELECT语句一:
要求结果找出8月之间的驾驶次数(不求和),结果如下:
driver  times
alan     4
tom      1
dan      2
alan     2
lonk     5
tom      2同题求SELECT语句二:
8月间的驾驶员行车次数和,结果如下:
driver  times
alan     6
tom      3
dan      2
lonk     5在线等,谢谢。

解决方案 »

  1.   

    第一个sql:
    select d1 dirver from t1 where date > '2008-08-0' and date < '2008-08-30' union all select d2 dirver from t1 where date > '2008-08-0' and date < '2008-08-30' 
      

  2.   


    更正第一个sql: 
    select d1 dirver,d1times times from t1 where date > '2008-08-0' and date < '2008-08-30' union all select d2 dirver,d2times times from t1 where date > '2008-08-0' and date < '2008-08-30' 
      

  3.   

    第二个sql:select dirver,sum(times) times from ( select d1 dirver,d1times times from t1 where date > '2008-08-0' and date < '2008-08-30' union all select d2 dirver,d2times times from t1 where date > '2008-08-0' and date < '2008-08-30' ) as tmp group by dirver;
      

  4.   

    语句一:
    select driver,times from
    (select d1 driver, d1times times from bus where date8 like '2008-8%'
    union
    select d2 driver,d2times times from bus where date8 like '2008-8%');因为ORACLE数据是无序排列的,所以结果顺序有点不一样,不能完全实现你的要求。SELECT语句二: 
     select driver,sum(times) from
     (select d1 driver, d1times times from bus where date8 like '2008-8%'
     union
     select d2 driver,d2times times from bus where date8 like '2008-8%') group by driver
      

  5.   

    更正一下:我建的日期栏位名称是date8,因为date是关键字,建表时显示错误。
    语句一: 
    select driver,times from 
    (select d1 driver, d1times times from T1 where date8 like '2008-8%' 
    union 
    select d2 driver,d2times times from T1 where date8 like '2008-8%'); 因为ORACLE数据是无序排列的,所以结果顺序有点不一样,不能完全实现你的要求。 SELECT语句二: 
    select driver,sum(times) times from 
    (select d1 driver, d1times times from T1 where date8 like '2008-8%' 
    union 
    select d2 driver,d2times times from T1 where date8 like '2008-8%') group by driver
    测试结果:
    DRIVER      TIMES
    ------ ----------
    alan            2
    alan            4
    dan             2
    lonk            5
    tom             1
    tom             2DRIVER     TIMES
    ------ ----------
    alan            6
    dan             2
    lonk            5
    tom             3