1

我可以在不使用来自一个查询的视图的情况下执行以下操作。

!--CREATE THE VIEW

CREATE OR REPLACE VIEW BDGTMGR
AS
  SELECT MANAGERID,SUM(BUDGET) AS BDGT FROM 
  N_DEPT GROUP BY MANAGERID ;

!-- THEN GET RESULT FROM THE VIEW

SELECT MANAGERID FROM BDGTMGR WHERE BDGT = (select MAX(BDGT) FROM BDGTMGR);

这里 N_DEPT 可能是原始表,其中包含名为 DID、MANAGERID 和 BUDGET 的列。

我想获得控制最大预算的 MANAGERID。一名经理可以控制多个部门。DID 是该表的主键。

我怎样才能做到这一点?

4

3 回答 3

2
select   MANAGERID,SUM(BDGT) 
from     N_DEPT 
group by MANAGERID 
order by SUM(BDGT) desc limit 1
于 2012-06-22T09:10:58.753 回答
1

你可以这样做:

SELECT aux.MANAGERID
FROM
  (SELECT MANAGERID,
         SUM(BUDGET) AS BDGT
   FROM N_DEPT
   GROUP BY MANAGERID) aux
INNER JOIN BDGTMGR b ON b.MANAGERID = aux.MANAGERID
WHERE b.BDGT = (select MAX(BDGT) FROM BDGTMGR);
于 2012-06-22T09:06:14.140 回答
0

以下查询将起作用(根据您的 SQL 风格进行修改):

SELECT TOP 1 MANAGERID FROM N_DEPT GROUP BY MANAGERID ORDER BY SUM(BUDGET) DESC
于 2012-06-22T09:08:07.630 回答