2012-09-20 5 views
2

내 직원의 이름, 아울렛은 점수가 있어야하며 아울렛에 점수를 부여해야합니다. 각 직원은 여러 개의 Outlets를 가질 수 있지만 적어도 해당 Outlet이 해당 Employee에 속하면 적어도 1 개의 Outlet 만 채점해야합니다.카운트가 포함 된 TSQL 그룹화

그래서 이런 기록이있을 수 있습니다.

Mike -----Outlet1---- 20 
Mike----- Outlet2---- 0 
John----- Outlet3---- 44 
Larry---- Outlet4----- 0 

직원은 자신에게 속한 콘센트 중 1 개에 대해 적어도 1 개의 점수가 있어야합니다. 그래서 Mike가 카운트를하고 싶지는 않습니다. 왜냐하면 래리가 어떤 아웃렛을 평가하지 않았기 때문에 결과 값으로 1을 반환하기를 원합니다.

표는 다음과 같습니다 만약 내가 제대로 이해하고 Select Name, Outlet, Score from TableName

+0

"속한"관계 란 무엇입니까? 또는 점수 == 0 * 합계 *를 가진 모든 이름을 의미합니까? –

+0

모든 마이크는 0의 합계를 가져야합니다. 단일 직원의 합계는 0이어야합니다. – Etienne

답변

3

, 당신은 출구를 득점하지 않은 이름의 수를 원한다.

select 
    Count(*) as Count 
from 
(
    select 
    Name, 
    Sum(Score) as Score 
    from 
    TableName 
    group by 
    Name 
    having 
    Sum(Score) = 0 
) as aa