2016-09-10 28 views
1

私は現在、それぞれの部門が以下のような異なるセクションを保持できる場合、各建物の容量を計算したい大学の管理プロジェクトに取り組んでいます(compと同じ建物で選ぶ) 私は 私のクエリがある望ましくない容量の合計取得していますクエリ書いた:選択した列の個々の合計を計算する方法

select sum(distinct capacity) 
from classroom 
where building in (select building from department group by building) 

私は660としてANSを取得していますが! このネストされたクエリの間違った場所でsumとdistinctを使用していますか?どのように個々の建物の容量を取得するには?

department 
+------------+----------+-----------+ 
| dept_name | building | budget | 
+------------+----------+-----------+ 
| Biology | Watson | 90000.00 | 
| Comp. Sci. | Taylor | 100000.00 | 
| Elec. Eng. | Taylor | 85000.00 | 
| Finance | Painter | 120000.00 | 
| History | Painter | 50000.00 | 
| Music  | Packard | 80000.00 | 
| Physics | Watson | 70000.00 | 
+------------+----------+-----------+  
classroom 
+----------+-------------+----------+ 
| building | room_number | capacity | 
+----------+-------------+----------+ 
| Packard | 101   |  500 | 
| Painter | 514   |  10 | 
| Taylor | 3128  |  70 | 
| Watson | 100   |  30 | 
| Watson | 120   |  50 | 
+----------+-------------+----------+ 

答えて

0

を使用していることを確認するには

SELECT building, SUM(capacity) as total_capacity 
FROM classroom 
GROUP BY building; 

各建物の容量はdepartmentテーブルにあり、buildingの合計はcapacityを超えて計算し、を加算します

select 
    building, sum(capacity) as capacity 
from classrom c 
where exists (
    select 1 
    from department d 
    where c.building = d.building 
) 
group by building 

あなただけに関係なくdepartmentに存在を構築する能力を必要とする場合は、exists句ドロップ:最初のため

select 
    building, sum(capacity) as capacity 
from classrom 
group by building 
+0

タイマーはチャームのように働きました:)私の疑問を解決しました – minigeek

+0

[回答を受け入れる](http://meta.stackexchange.com/questions/5234/)あなたがそれが役に立つと思えば、答えを出してくれます。 –

+0

それを行う方法..私は新たにサインインしていると評判はあまりupvoteされていません:( – minigeek

-1

使用次のクエリ:あなたはその建物の中に少なくとも1部門だけ確認したいので、その後inner join

SELECT classroom.building, SUM(capacity) as total_capacity 
FROM classroom 
INNER JOIN department 
    ON classroom.building == department.building 
GROUP BY classroom.building; 
+0

TYを少なくとも一つのアパートの住居ているのみの建物を表示する句答えは2番目のクエリが間違った出力を示しています:) – minigeek

+0

申し訳ありませんが、私はここで忘れてしまいました。私の編集を参照してください。 –

+0

はまだ同じ出力を表示しています...いつものようなジョイン・アン・ジョーンズ作品:) – minigeek

関連する問題