이 SQL 쿼리 (헤더 및 세부 정보)를 해결하는 방법은 무엇입니까?

srh

SQL Server 2008 R2를 사용하고 있습니다.

헤더 및 세부 정보 테이블과 관련된 SQL 쿼리 질문이 있습니다. 위치 및 부서 및 week_start_date를 저장하는 헤더 테이블이 있습니다. employee_id & job_code & work_date & hours를 저장하는 세부 테이블이 있습니다.

week_start_date는 같지만 위치 및 / 또는 부서가 다른 헤더에있는 직원을 찾고 싶습니다.

설명은 다음과 같습니다.


나는이 헤더 테이블 :

CREATE TABLE header (
    header_id bigint not null PRIMARY KEY,
    location_code int not null,
    department_code int not null,
    week_start_date datetime not null )

나는이 세부 사항 테이블 :

CREATE TABLE detail (
    detail_id bigint not null PRIMARY KEY,
    header_id bigint not null FOREIGN KEY header(header_id),
    employee_id int not null,
    job_code int not null,
    work_date datetime not null,
    hours decimal(8,2) not null )

헤더 테이블에는 location_code + department_code + week_start_date와 같은 고유 키가 있습니다.

예를 들어 다음은 헤더 테이블 의 데이터입니다 .

header_id = 11, location_code = 22, department_code = 33, week_start_date = '2016-02-08'

header_id = 12, location_code = 22, department_code = 39, week_start_date = '2016-02-08'

header_id = 13, location_code = 22, department_code = 33, week_start_date = '2016-02-15'

header_id = 14, location_code = 21, department_code = 33, week_start_date = '2016-02-08'

헤더 테이블의 각 행에는 세부 정보 테이블에 여러 행이있을 수 있습니다 .

상세 테이블에는 header_id + employee_id + job_code + work_date와 같은 고유 키가 있습니다.

예를 들어 다음은 1000598 employee_id에 대한 세부 테이블 의 데이터입니다 .

detail_id = 101, header_id = 11, employee_id = 1000598, job_code = 77, work_date = '2016-02-08', 시간 = 5.00

detail_id = 102, header_id = 11, employee_id = 1000598, job_code = 77, work_date = '2016-02-09', 시간 = 4.00

detail_id = 109, header_id = 12, employee_id = 1000598, job_code = 79, work_date = '2016-02-11', 시간 = 4.50

예를 들어 다음은 1000599 employee_id에 대한 세부 테이블 의 데이터입니다 .

detail_id = 121, header_id = 11, employee_id = 1000599, job_code = 78, work_date = '2016-02-10', 시간 = 8.00

detail_id = 122, header_id = 14, employee_id = 1000599, job_code = 75, work_date = '2016-02-12', 시간 = 3.00

예를 들어 다음은 1000600 employee_id에 대한 세부 테이블 의 데이터입니다 .

detail_id = 131, header_id = 11, employee_id = 1000600, job_code = 72, work_date = '2016-02-11', 시간 = 7.00

detail_id = 132, header_id = 13, employee_id = 1000600, job_code = 75, work_date = '2016-02-17', 시간 = 3.00

1000598에는 동일한 week_start_date = '2016-02-08'에 대한 department_code = 33 및 department_code = 39에 대한 데이터가 모두 있으므로 SQL 쿼리는 1000598 employee_id를 반환해야합니다.

1000599에 동일한 week_start_date = '2016-02-08'에 대한 location_code = 22 및 location_code = 21에 대한 데이터가 모두 있으므로 SQL 쿼리는 1000599 employee_id를 반환해야합니다.

SQL 쿼리는 1000600 employee_id를 반환하지 않아야합니다.


이것이 내가 생각 해낸 시작입니다.

select 
   h.employee_id, 
   d.week_start_date
from 
   header h (nolock) 
      inner join detail d (nolock) 
         on h.header_id = d.header_id 
group by 
   h.employee_id, 
   d.week_start_date
order by 
   1, 
   2  

별로.

퍼지 트리

week_start_date는 같지만 위치 및 / 또는 부서가 다른 헤더에있는 직원을 찾고 싶습니다.

아래 쿼리 (employee_id, week_start_date)는 1 개 이상 location_code또는department_code

select d.employee_id, h.week_start_date
from detail d
join header h on h.header_id = d.header_id
group by d.employee_id, h.week_start_date -- employees with same week_start_date
having (
  count(distinct h.location_code) > 1 -- have more than 1 location
  or count(distinct h.department_code) > 1 -- or more than 1 department
)    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

이 pl sql oracle 쿼리를 해결하는 방법은 무엇입니까?

이 SQL 쿼리를 작성하는 더 좋은 방법은 무엇입니까?

SQL에서 쿼리 삭제 및 업데이트를 결합하는 방법은 무엇입니까?

헤더 및 .so 파일이있는 라이브러리를 사용하는 방법은 무엇입니까?

이 SQL 쿼리를 더 짧게 만드는 방법은 무엇입니까?

API 세부 정보없이 리드 세부 정보를 얻는 방법은 무엇입니까?

이 sqlite SQL 쿼리를 수정하여 내부 조인 필터를 줄이는 방법은 무엇입니까?

SQL 및 인라인 보기를 사용하여 이 특정 질문/쿼리를 완료하는 방법은 무엇입니까?

이 SQL Server 쿼리를 더 정확하게 편집하는 방법은 무엇입니까?

방대한 데이터 세트에 대한 IN 절 SQL 쿼리의 성능 문제를 해결하는 방법은 무엇입니까?

헤더에 JWT 토큰이 없는 경우 일부 논리를 수행하는 방법은 무엇입니까?

별칭 이름 에서이 SQL 쿼리 식별자 오류를 해결하는 방법은 무엇입니까?

Select-object를 사용하여 단일 쿼리에서 프로세스 및 스레드의 세부 정보를 얻는 방법은 무엇입니까?

ng-grid에서 다중 행 그리드 헤더 및 해당 데이터를 렌더링하는 방법은 무엇입니까?

서버에 ssh하고 CPU 및 메모리 세부 정보를 얻는 방법은 무엇입니까?

sencha touch의 세부 정보 페이지에 대해 헤더 제목을 스크롤 할 수 없도록 설정하는 방법은 무엇입니까?

SQL 쿼리로 정렬 및 그룹화하는 방법은 무엇입니까?

헤더 전용이 아닌 외부 대상에 의존하는 cmake 헤더 전용 라이브러리를 만드는 방법은 무엇입니까?

테이블 구조 SQL 쿼리를 보는 방법은 무엇입니까?

SQL Server 2014: csv 내보내기에 헤더 및 세부 정보를 포함하는 방법

MySQL-복잡한 내부 조인 및 연결 쿼리를 수정하는 방법은 무엇입니까?

다음 SQL 쿼리를 해결하는 방법은 무엇입니까?

외부 헤더 파일에 의존하는 cmake 헤더 전용 라이브러리를 만드는 방법은 무엇입니까?

C #의 SQL 쿼리에서 데이터 세트를 검색하는 방법은 무엇입니까?

여러 데이터 세트에서 SQL 쿼리를 순환하는 방법은 무엇입니까?

열 헤더를 정리하는 더 효율적이거나 "파이썬"방법은 무엇입니까?

세 테이블의 데이터를 단일 그리드 출력으로 결합하는 SQL Server 2005 쿼리를 작성하는 방법은 무엇입니까?

SQL 쿼리 결과를 보고서 양식 테이블에 출력하는 방법은 무엇입니까?

CTE없이 SQL 쿼리에서 계층 적 결과 (계보)를 생성하는 방법은 무엇입니까?

TOP 리스트

  1. 1

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  2. 2

    MDRotatingPieChart를 회전하면 각도 대신 x / y 위치가 변경됩니다.

  3. 3

    c # 웹 사이트에서 텍스트를 복사하는 방법 (소스 코드 아님)

  4. 4

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  5. 5

    ArrayBufferLike의 typescript 정의의 깊은 의미

  6. 6

    Ionic 2 로더가 적시에 표시되지 않음

  7. 7

    복사 / 붙여 넣기 비활성화

  8. 8

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    QT Designer를 사용하여 GUI에 이미지 삽입

  11. 11

    java Apache POI Word 기존 테이블 셀 스타일 및 서식이있는 행 삽입

  12. 12

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  13. 13

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  14. 14

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  15. 15

    어떻게 같은 CustomInfoWindow 다른 이벤트를 할 수 있습니다

  16. 16

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  17. 17

    dataSnapShot.getValue () 반환 데이터베이스에 그겁니다 데이터 종료 널 (null)

  18. 18

    ORA-12557 TNS : 프로토콜 어댑터를로드 할 수 없습니다

  19. 19

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  20. 20

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  21. 21

    C # Asp.net 웹 API-JSON / XML 변환기 API 만들기

뜨겁다태그

보관