一个销售表sales:
workername salemoney
a1         3000
a2         2000
a3         1000
a2         3000
要求查询总销售额最大的员工姓名跟销售额。我是一个新手,请大家帮帮忙。另外就是请大家推荐一本比较全面点的介绍pl/sql的书,谢谢了。

解决方案 »

  1.   

    SELECT workername,salemoney FROM sales WHERE salemoney=(SELECT MAX(salemoney) FROM sales)
      

  2.   

    to 79bo:需要查询的是销售总额最大。比如:员工a2的销售总额为2000+3000=5000。这个查询的结果应该是a2 5000。这个应该怎么写啊。
      

  3.   

    select workername,total
    from 
    (
    select workername,sum(salemoney) as total,rownum as rn
    from sales 
    group by workername
    order by sum(salemoney) desc
    )
    where rn = 1
      

  4.   

    可以采取两个步骤变通实现。一是先SELECT   workername,sum(salemoney)   FROM   sales  GROUP BY WORKERNAME,
    存储到临时表中,然后根据临时表中,金额最大的选取需要的数据。 
      

  5.   

    由三楼的启发,改写sql:
    SELECT * FROM (SELECT workername,sum(salemoney) FROM sales GROUP BY workername ORDER BY  sum(salemoney) ASC) WHERE ROWNUM=1
    我试过,这样是可以满足要求的。
      

  6.   

    SELECT   workername,sum(salemoney)   FROM   sales   WHERE   salemoney=(SELECT   MAX(salemoney)   FROM   sales)
      

  7.   

    select workername
      from (select workername, sum(salemoney) as salemoney
              from sales
             group by workername)
     where salemoney = (select max(salemoney)
                          from (select workername, sum(salemoney) as salemoney
                                  from sales
                                 group by workername)
                        )
      

  8.   

    select workrname,sum(salemoney) as total
    from sale
    group by workername