2016-10-18 2 views
0

나는 크리스마스 저녁 식사에 참여할 사람들의 수를 얻기 위해 쿼리를하고 있습니다. 사람들은 노동자와 그 친척들을 포함합니다. 친척은 다른 테이블에 저장됩니다.SQL에서 합계 값을 변경하십시오.

어린이와 어른이 다른 메뉴를 먹고 가족별로 테이블을 구성합니다. 이미이 쿼리

select worker_name, 
count(*) as total_per_family, 
SUM(CASE WHEN age < 18 THEN 1 ELSE 0 END) as children, 
SUM(CASE WHEN age >= 18 THEN 1 ELSE 0 END) as adults 
from 
(
    /*subquery*/ 
) 
group by worker_name 
order by worker_name; 

을 사용하고

이 쿼리는 근로자와 관련된 아동과 성인의 수를 반환 카운트는 나에게 총을 제공합니다.

문제는 내가 성인 합계에 작업자를 추가해야한다는 것입니다.

수정할 방법이 있습니까 성인? 합계가 완료된 후 계수가 획득되기 전에 초기 값을 1로 설정하거나 1을 더하십시오.

답변

0

쿼리에

SUM(CASE WHEN AGE>=18 THEN 1 ELSE 0 END) + 1 as adults 

아마 첫 번째 방법이 될 것이다 읽을 수정. 집계 SUM()이 먼저 계산되고, 이후에 첫 번째 제안이 표시된대로 1이 추가됩니다.

+1

타크. 이것은 부분적으로 작동합니다. 또한 "+1"을 카운트에 추가해야합니다. – user7038372

관련 문제