2016-12-28 5 views
0

SQL Server 2012では、の各要素の値を返すクエリが必要です。ここでは、句です。すべてのWhere句エントリのSQL結果

select count(id) idCount, squad from dbo.Project 
where id between 60000 and 80000 
and status = ('Complete') and squad in ('Mechanical', 'Civil', 'Electrical', 'Architectural') 
and fiscalyear = 2018 
group by squad 
order by squad asc 

クエリは、私がすべき出力はあなたがleft joinが必要

idCount  Squad 
    0  Architectural 
    1  Civil 
    3  Electrical 
    3  Mechanical 

答えて

2

ありたいと考えて何

idCount Squad 
1  Civil 
3  Electrical 
3  Mechanical 

を返します。 SQL Serverでは、あなたが行うことができます:

select count(p.id), v.squad 
from (values ('Mechanical'), ('Civil'), ('Electrical'), ('Architectural') 
    ) v(squad) left join 
    dbo.Project p 
    on v.squad = p.squad and 
     p.id between 60000 and 80000 and 
     p.fiscalyear = 2018 
group by v.squad 
order by v.squad asc ; 

注意をすべてwhere条件が一致しない値の不注意によるフィルタリングを防ぐために、on句で行く必要があること。

+0

ありがとうございました! –