SQL 쿼리를 사용하여 MS Access에서 다음 작업을 수행하려면 도움이 필요합니다.
수행하려는 작업은 다음 예제에 설명되어 있습니다.
초기 테이블
표 A
Name H1 H2 H3
A 5 10 5
B 1 2 3
C 7 3 1
표 B :
Name H1 H2 H3
1 1 1 1
2 2 2 2
1) 첫 번째 단계 : 결과
NAME TABLE A NAME TABLE B H1 H2 H3
A 1 4 9 4
A 2 3 8 3
B 1 0 1 2
B 2 1 0 1
C 1 6 2 0
C 2 5 1 1
따라서이 새 테이블의 첫 번째 행은 ABSOLUTEVALUE (TABLE A (행 A) -TABLE B (행 1))로 계산되고,이 테이블의 두 번째 행은 ABSOLUTEVALUE (TABLE A (행 A) -TABLE B (행 2)가됩니다. )) 등등.
2) 2 단계 : 결과
NAME TABLE A NAME TABLE B H1 H2 H3 Total
A 1 4 9 4 17
A 2 3 8 3 14
B 1 0 1 2 3
B 2 1 0 1 2
C 1 6 2 0 8
C 2 5 1 1 7
따라서이 단계에서는 각 행의 H1, H2 및 H3 값의 합으로 계산되는 필드를 추가해야합니다.
3) 최종 단계 : 결과
Name H1 H2 H3
A 3 8 3
B 1 0 1
C 5 1 1
마지막 단계에서는 Total 필드에 최소값이있는 이전 테이블에서 A, B 및 C 행을 선택합니다.
감사!
1 단계를 시도해보십시오 ...
SELECT A.NameA AS [NAME TABLE A],
B.NameB AS [NAME TABLE B],
ABS( A.H1 - B.H1 ) AS H1,
ABS( A.H2 - B.H2 ) AS H2,
ABS( A.H3 - B.H3 ) AS H3
FROM A,
B;
2 단계를 시도해보십시오 ...
SELECT A.NameA AS [NAME TABLE A],
B.NameB AS [NAME TABLE B],
ABS( A.H1 - B.H1 ) AS H1,
ABS( A.H2 - B.H2 ) AS H2,
ABS( A.H3 - B.H3 ) AS H3,
H1 + H2 + H3 AS [Total]
FROM A,
B;
3 단계의 경우 다음 중 하나를 시도하십시오 ...
SELECT A.NameA AS [NAME TABLE A],
MIN( ABS( A.H1 - B.H1 ) ) AS H1,
MIN( ABS( A.H2 - B.H2 ) ) AS H2,
MIN( ABS( A.H3 - B.H3 ) ) AS H3
FROM A,
B
GROUP BY A.NameA;
AVG에 대한 필자의 의견에 따라이 상황은 첫 번째 테이블의 각 레코드가 두 번째 테이블의 각 레코드에 조인되는 두 테이블의 데카르트 곱을 사용합니다. 이것은 각 진술 CROSS JOIN
에 배치하여 내가 한 것처럼 수행함으로써 달성 할 수 있습니다 FROM A, B
. 이 조인은 다음 데이터 세트를 제공합니다.
NameA | A.H1 | A.H2 | A.H3 | NameB | B.H1 | B.H2 | B.H3
------|------|------|------|-------|------|------|-----
A | 5 | 10 | 5 | 1 | 1 | 1 | 1
A | 5 | 10 | 5 | 2 | 2 | 2 | 2
A | 5 | 10 | 5 | 1 | 1 | 1 | 1
A | 5 | 10 | 5 | 2 | 2 | 2 | 2
A | 5 | 10 | 5 | 1 | 1 | 1 | 1
A | 5 | 10 | 5 | 2 | 2 | 2 | 2
(필드가 다른 테이블에 조인되고 해당 이름이 다른 테이블에 존재하지 않는 경우 테이블 이름을 지정할 필요없이 해당 이름으로 계속 참조 할 수 있습니다 (여전히 수행 할 수 있음). 새로운 필드가 다른 테이블의 필드와 이름을 공유 않으면 다음)를 선택하면 것이다. 각 필드에 의해 참조해야합니다 모두 테이블 이름과 필드 이름입니다.)
이 데이터 세트는 세 가지 작업 모두에 사용할 수 있습니다.
첫 번째 작업의 경우 ABS()
함수는 H1 값의 차이 등에 사용할 수 있습니다. with와 같은 필드를 생성하고를 ABS( A.H1 - B.H1 )
사용하여 이름을 지정하지 않으면 AS
새 필드에 임의로 name은 필드 ( ABS( A.H1 - B.H1 )
이 경우) 또는 다루기 힘든 다른 것을 생성 한 표현식입니다 . 따라서 방정식의 다른 부분 (또는 다른 곳)에서 참조하려는 경우 생성 된 모든 필드의 이름을 지정하는 것이 좋습니다.
두 번째 작업의 경우 단순히 계산 된 H
필드 를 더하는 식 (예 :) H1 + H2 + H3
이면 충분합니다.
세 번째 작업의 경우 첫 번째 작업에서 생성 된 데이터 집합을 사용할 수 있습니다 NameB
. 그런 다음의 값으로 행을 그룹화하고 NameA
집계 함수 MIN()
를 사용하여 각 H
열 에서 최소값을 선택할 수 있습니다 .
질문이나 의견이 있으시면 언제든지 의견을 게시 해주십시오.
추가 읽기
절대 숫자 값에 대해이 SQL 하위 쿼리를 포함하는 방법은 무엇입니까? ( ABS()
)
액세스에서 교차 조인을 사용하는 방법은 무엇입니까? ( CROSS JOIN
액세스 에서 사용 )
http://www.w3resource.com/sql/joins/cross-join.php (일반적으로 SQL 교차 조인에서)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다