테이블에 일치하는 행이있을 때 나는이 쿼리를 사용하고 훌륭한 작업을 수행합니다. Tiempo
.테이블 쿼리 : 복잡한 조인
문제는 내가 실제로 알아야 할 것이 Usuario
에있는 Tiempo
의 일치하지 않는 행도 있다는 것입니다.
SELECT u.Id, t.empleado, CAST(MONTH(t.fecha) AS VARCHAR(2)) AS MonthNumber, CAST(YEAR(t.fecha) AS VARCHAR(4)) AS YearNumber, SUM(t.horas) AS Horas
FROM Usuario u
INNER JOIN Tiempo t ON u.username = t.empleado
WHERE fecha >= '2016-08-01' and fecha <= '2016-08-31'
GROUP BY u.id, t.empleado, CAST(MONTH(t.fecha) AS VARCHAR(2)), CAST(YEAR(t.fecha) AS VARCHAR(4))
이
는 출력 :Id empleado MonthNumber YearNumber Horas
86 username1 8 2016 96
95 username2 8 2016 80
99 username3 8 2016 47
102 username4 8 2016 85
그리고 이것은 내가 무엇을 찾고 있습니다 :
Id empleado MonthNumber YearNumber Horas
86 username1 8 2016 96
95 username2 8 2016 80
99 username3 8 2016 47
102 username4 8 2016 85
102 username5 8 2016 null (or 0)
편집 : 샘플 데이터 : download
, 당신은 실제 문제의 샘플 데이터를 포함한다 – Sami
을 내부가 왼쪽으로 가입 교체하세요. 지금 당장은 아래의 답변 중 적어도 일부가 문제를 해결하지 않는 이유가 명확하지 않습니다. –
@Sami는 목표를 달성하지 못했지만 스틸은 같은 결과를 얻습니다. 테스트를위한 완벽한 세트를 제공하는 샘플 데이터 링크를 확인하십시오. –