4

3 つの列を持つEmpテーブルがあるとEmpId, Manager, Subbします。

Managerがマネージャーの場合は 1 EmpId、同様に は ですsubb

テーブルからマネージャーとサブの数を要求します。

これら 2 つのクエリを 1 つのクエリに結合できSELECTますか? (一度だけテーブルをスキャンしたい)

select count(*) as ManagerNumber from Emp where Manager=1
select count(*) as Subordinate  from Emp where Subb=1.
4

2 に答える 2

10

あなたはこれを行うことができます:

SELECT 
  SUM(CASE WHEN Manager = 1 THEN 1 ELSE 0 END) AS ManagerNumber, 
  SUM(CASE WHEN subb = 1 THEN 1 ELSE 0 END) AS Subordinate 
FROM Emp 

また、これは SQL ANSI 標準であり、すべての RDBMS で動作します。

于 2012-09-26T11:29:27.893 に答える
0

はい、できます。

select
    (select count(*) as ManagerNumber from Emp where Manager=1),
    (select count(*) as Subordinate  from Emp where Subb=1)

または、それぞれの行で、

select count(*) as ManagerNumber from Emp where Manager=1
UNION
    select count(*) as Subordinate  from Emp where Subb=1
于 2012-09-26T11:30:45.520 に答える