홈>
<올>
timesetup
표(비정규 화),이 표는 결과 필터링에 사용 된 시간 조정용입니다
| time_id | period_from | period_to | session1_from | session1_to | session2_from | session2_to | session3_from | session3_to | session4_from | session4_to | session5_from | session5_to |
|---------|-------------|------------|---------------|-------------|---------------|-------------|---------------|-------------|---------------|-------------|---------------|-------------|
| 1 | 10/09/2015 | 11/09/2015 | 04:00:00 | 05:00:00 | 12:00:00 | 13:00:00 | 15:00:00 | 16:00:00 | 18:00:00 | 18:35:00 | 19:00:00 | 20:00:00 |
| 2 | 12/09/2015 | 13/09/2015 | 04:10:00 | 05:10:00 | 12:10:00 | 13:10:00 | 15:10:00 | 16:10:00 | 18:10:00 | 18:45:00 | 19:10:00 | 20:10:00 |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
정규화 된 버전 :
dateperiode
표:
| period_id | date_from | date_to |
|-----------|------------|------------|
| 1 | 10/09/2015 | 11/09/2015 |
| 2 | 12/09/2015 | 13/09/2015 |
|-------------------------------------|
sessionrange
표:
| sessionrange_id | session | session_from | session_to |
|-----------------|-----------|--------------|-------------|
| 1 | 1 | 04:00:00 | 05:00:00 |
| 2 | 2 | 12:00:00 | 13:00:00 |
| 3 | 3 | 15:00:00 | 16:00:00 |
| 4 | 4 | 18:00:00 | 18:35:00 |
| 5 | 5 | 19:00:00 | 20:00:00 |
| 6 | 1 | 04:10:00 | 05:10:00 |
| 7 | 2 | 12:10:00 | 13:10:00 |
| 8 | 3 | 15:10:00 | 16:10:00 |
| 9 | 4 | 18:10:00 | 18:45:00 |
| 10 | 5 | 19:10:00 | 20:10:00 |
|-----------------|-----------|--------------|-------------|
timsetup
표:
| period_id | sessionrange_id |
|-----------|-----------------|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 2 | 6 |
| 2 | 7 |
| 2 | 8 |
| 2 | 9 |
| 2 | 10 |
|-----------|-----------------|
checktime
표에서이 표는 지문 스캐너 (tapping_time
)의 데이터를 포함합니다. 필드)|userid | tapping_time | |--------|----------------------| |234 | 10/09/2015 04:20:04 | |234 | 10/09/2015 04:20:06 | |234 | 10/09/2015 12:15:35 | |234 | 10/09/2015 15:31:11 | |234 | 10/09/2015 18:19:10 | |234 | 10/09/2015 18:19:15 | |234 | 10/09/2015 19:37:53 | |234 | 11/09/2015 04:38:42 | |234 | 11/09/2015 04:38:47 | |234 | 11/09/2015 12:21:27 | |234 | 11/09/2015 15:45:30 | |234 | 11/09/2015 15:45:37 | |234 | 11/09/2015 18:27:15 | |234 | 11/09/2015 19:55:08 | |234 | 11/09/2015 19:55:12 | |234 | 12/09/2015 04:45:10 | |234 | 12/09/2015 04:45:13 | |234 | 12/09/2015 13:12:55 | |234 | 12/09/2015 16:35:08 | |234 | 12/09/2015 18:49:10 | |234 | 12/09/2015 20:20:57 | |234 | 13/09/2015 05:11:56 | |234 | 13/09/2015 05:12:05 | |234 | 13/09/2015 12:45:13 | |234 | 13/09/2015 15:47:25 | |234 | 13/09/2015 18:31:27 | |234 | 13/09/2015 18:31:30 | |234 | 13/09/2015 20:01:18 | |-------------------------------|
날짜/시간을
timesetup
의 기간으로 그룹화하는 Access 쿼리를 작성하려고합니다.
표.
tapping_time
timesetup
의세션조건에 따라 세션 당하나만결과를 가져야합니다 (사용자가 한 번에 두 번 이상 탭할 때도).
표. 또한 사용자는 세션의외부시간을 탭합니다 (
session_from
사이의 시간)
그리고
session_to
) 필드는 계산되지 않거나 결과 표에 표시되지 않아야합니다.
원하는 결과 :
| userid | date | tapping_on | session |
|--------|------------|------------|---------|
| 234 | 10/09/2015 | 04:20:04 | 1 |
| 234 | 10/09/2015 | 12:15:35 | 2 |
| 234 | 10/09/2015 | 15:31:11 | 3 |
| 234 | 10/09/2015 | 18:19:10 | 4 |
| 234 | 10/09/2015 | 19:37:53 | 5 |
| 234 | 11/09/2015 | 04:38:42 | 1 |
| 234 | 11/09/2015 | 12:21:27 | 2 |
| 234 | 11/09/2015 | 15:45:30 | 3 |
| 234 | 11/09/2015 | 18:27:15 | 4 |
| 234 | 11/09/2015 | 19:55:08 | 5 |
| 234 | 12/09/2015 | 04:45:10 | 1 |
| 234 | 12/09/2015 | 16:35:08 | 3 |
| 234 | 12/09/2015 | 18:49:10 | 4 |
| 234 | 13/09/2015 | 12:45:13 | 2 |
| 234 | 13/09/2015 | 15:47:25 | 3 |
| 234 | 13/09/2015 | 18:31:27 | 4 |
| 234 | 13/09/2015 | 20:01:18 | 5 |
|--------------------------------------------|
- 답변 # 1
관련 자료
- r : 연도별로 그룹 데이터와 일년 내내 필터링하십시오
- kotlin : 3000에서 3500 사이의 목록에서 값 필터링
- sql - 다른 열의 날짜 사이의 MySQL 필터
- R에서 여러 날짜 범위 사이의 목록에서 일을 계산하는 빠른 방법?
- javascript - JSON 파일 그룹화 및 필터링
- mysql - 조인으로 그룹 결과를 얻는 방법
- r - 그룹별로 범위를 합친 열 만들기
- ID 별 PHP 그룹 mysql 결과
- sorting - 빠른 - 여러 int 범위로 int 키 값 그룹화
- drupal - '다음 사이'를 사용하는 노출 날짜 필터에 종료 날짜가 포함되지 않은 조회수
- postgresql - 시작일과 종료일 사이에있는 일련의 기간을 생성하려면 어떻게해야합니까?
- 주어진 외래 키에 대해 다른 날짜 범위 사이가 아닌 한 테이블의 모든 날짜 범위를 쿼리하는 SQL
- excel - XIRR 함수를 호출하기 위해 FILTER 함수의 결과에 값을 추가합니다
- javascript - Crossfilter를 사용하여 그룹 내에서 필터링 할 수 있습니까?
- php - DB에 범위가 저장되는 범위 사이의 데이터를 '-'로 구분 된 단일 열로 쿼리하는 방법은 무엇입니까?
- postgresql - SQL-92 필터 결과 및 세트의 첫 번째 행에 대한 쓰기
- 행의 최대 값과 최소값의 차이에 따라 R의 필터 행렬
- r dplyr - 그룹별로 공통 값 필터링
- javascript - 두 날짜 사이의 MongoDB 필터
- PHP의 다차원 배열에서 날짜가 여러 날짜 범위 사이에 있는지 확인
관련 질문
- Tableau의 여러 차원에서 SQL GROUP BY를 수행하는 방법은 무엇입니까?
- MS Access를 통한 통과 SQL 쿼리
- mysql : 지정된 where 조건으로 모든 다대일 행을 얻는 방법은 무엇입니까?
- mysql : 아니오를 계산하는 더 간결한 방법. 날짜당 여러 개 있는 경우 개최되는 수업/행사 수
- Microsoft SQL Server Migration Assistant for Access를 사용하여 Access 데이터베이스를 MSSQL 데이터베이스로 변환
- 중첩 SQL 업데이트가 작동하지 않음
- SQL에서 두 개의 집계 필드를 합산하는 방법
- sql : 날짜별 데이터를 기반으로 날짜 범위 데이터 그룹 생성
- sql : 테이블 열 데이터에서 가장 긴 문자열을 찾는 방법
- mysql의 json_object로 주문하는 방법
dateperiode와 sessionrange의 관계가 나와 일대 다 관계처럼 보이므로 접합 테이블이 필요하지 않기 때문에 정규화에 대해 약간 배척했을 수 있습니다.
다음 데이터를 사용하면 다음 쿼리가 작동해야한다고 생각하지만 불행히도 준비가 된 적절한 테스트 설정이 없습니다 :