1

Hoeは、1つのクエリからのVIEWを使用せずに次のことを実行できます。

!--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 に答える