직원 시간 기록에 대한 보고서를 작성하려고합니다.
이 질문에 특별히 두 개의 테이블이 있습니다. 직원은 Members
테이블에 나열되며 매일 수행 한 작업 시간 항목을 입력하고 Time_Entry
테이블에 저장됩니다 .
SQL Fiddle을 사용한 설정 예 : http://sqlfiddle.com/#!3/e3806/7
내가 갈거야 최종 결과는 쇼 테이블입니다 ALLMembers
열 목록에서 다음이 다른 컬럼에 조회 날짜에 대한 자신의 합계 시간을 표시합니다.
문제 Time_Entry
는 특정 멤버 의 테이블에 행이없는 경우 해당 멤버에 대한 행이있는 것 같습니다. 여러 가지 조인 유형 (Left, Right, Inner, Outer, Full Outer 등)을 시도했지만 원하는 것을 제공하지 않는 것 같습니다 (SQL Fiddle의 마지막 예를 기반으로 함).
/*** Desired End Result ***/
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
ADavis | 0 | 11-10-2013 | 0 | 0
BTronton | 0 | 11-10-2013 | 0 | 0
CJones | 0 | 11-10-2013 | 0 | 0
DSmith | 0 | 11-10-2013 | 0 | 0
EGirsch | 1 | 11-10-2013 | 0.92 | 1
FRowden | 0 | 11-10-2013 | 0 | 0
11-1의 특정 날짜를 쿼리 할 때 현재 얻고있는 것 :
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
EGirsch에 대해 날짜가 2013 년 11 월 10 일자 인 1 개의 시간 항목 행을 기준으로 올바른 것이지만이 정보에 대한 보고서와 웹 대시 보드 / 보고서를 얻으려면 다른 구성원에 대해 0이 필요합니다.
이것은 나의 첫 번째 질문이며, Join 쿼리 등을 검색하는 동안이 함수가 무엇을 호출하는지 잘 모르겠습니다. 이것은 중복되지 않으며 다른 사람들도 해결책을 찾는 것을 도울 수 있기를 바랍니다. 비슷한 문제.
WHERE
과AND
. 나는 원래 별명을 사용했지만 sqlfiddle은 그것을 좋아하지 않는 것처럼 보이므로 전체 형식으로 갔다. 다른 SQL 팁도 감사합니다. 당신은 권하고 싶습니다ISNULL
또는COALESCE
데이터를 만들기 위해 공을 대신NULL
? 다시 감사합니다!