다음을 통해 공유


Shape COMPUTE 절

셰이프 COMPUTE 절은 부모 Recordset생성합니다. 열은 자식 Recordset; 참조로 구성됩니다. 콘텐츠가 장, 새 열 또는 계산 열인 선택적 열 또는 자식 Recordset 또는 이전에 셰이핑된 Recordset;에서 집계 함수를 실행한 결과입니다. 및 자식 레코드 집합의 모든 열이 선택적 BY 절에 나열되어.

통사론

SHAPE child-command [AS] child-alias  
   COMPUTE child-alias [[AS] name], [appended-column-list]  
   [BY grp-field-list]  

묘사

이 절의 부분은 다음과 같습니다.

자식 명령
다음 중 하나로 구성됩니다.

  • 중괄호("{}") 안의 조회 명령으로, 자식 Recordset 개체를 반환합니다. 명령은 기본 데이터 공급자에 발급되며 해당 구문은 해당 공급자의 요구 사항에 따라 달라집니다. ADO에는 특정 쿼리 언어가 필요하지 않지만 일반적으로 SQL 언어가 됩니다.

  • 기존 셰이핑된 Recordset이름입니다.

  • 다른 셰이프 명령입니다.

  • TABLE 키워드 뒤에 데이터 공급자의 테이블 이름이 잇습니다.

자식 별칭
자식 명령에서 반환된 Recordset 참조하는 데 사용되는 별칭입니다. COMPUTE 절의 열 목록에는 자식 별칭 필요하며 부모 및 자식 Recordset 개체 간의 관계를 정의합니다.

추가된 열 목록
각 요소가 생성된 부모에서 열을 정의하는 목록입니다. 각 요소에는 장(챕터) 열, 새 열, 계산 열 또는 자식 Recordset에 대한 집계 함수의 결과값이 포함됩니다.

grp-field-list
부모 및 자식 Recordset 개체의 열 목록으로, 자식에서 행이 어떻게 그룹화되어야 하는지를 지정합니다.

grp-field-list의 각 열에 대해 자식 및 부모 Recordset 개체에 해당 열이. 부모 Recordset각 행에 대해 grp-field-list 열에는 고유한 값이 있으며, 부모 행에서 참조하는 자식 Recordsetgrp-field-list 열의 값이 부모 행과 동일한 자식 행으로만 구성됩니다.

BY 절이 포함된 경우 자식 Recordset의 행은 COMPUTE 절의 열에 따라 그룹화됩니다. 부모 Recordset에는 자식 Recordset의 각 행 그룹에 대해 하나의 행이 포함됩니다.

BY 절을 생략하면 전체 자식 Recordset 단일 그룹으로 처리되고 부모 Recordset 정확히 하나의 행이 포함됩니다. 해당 행은 자식 레코드셋 전체를 참조합니다. BY 절을 생략하면 자식 레코드셋전체에 대해 "전체 합계" 집계를 계산할 수 있습니다.

예를 들어:

SHAPE {select * from Orders} AS orders             COMPUTE orders, SUM(orders.OrderAmount) as TotalSales         

부모 Recordset이 어떤 방식으로 구성되든지 (COMPUTE 사용 또는 APPEND 사용), 이는 자식 Recordset에 연결하는 데 사용되는 장 열을 포함하게 됩니다. 원한다면 부모 레코드 집합에 자식 행에 대한 집계(SUM, MIN, MAX 등)를 포함하는 열도 포함될 수 있습니다. 부모 및 자식 Recordset 모두는 Recordset행에 대한 표현식이 포함된 열뿐만 아니라 새로 추가된, 처음에는 비어 있는 열도 포함할 수 있습니다.

수술

자식 명령이 공급자에게 발급되며, 자식 Recordset이 반환됩니다.

COMPUTE 절은 부모 Recordset의 열을 지정하며, 이는 자식 Recordset에 대한 참조, 하나 이상의 집계, 계산된 식 또는 새로운 열일 수 있습니다. BY 절이 있는 경우, 정의한 열들이 부모 Recordset에 추가됩니다. BY 절은 하위 Recordset의 행을 그룹화하는 방법을 지정합니다.

예를 들어 State, City 및 Population 필드로 구성된 인구 통계라는 테이블이 있다고 가정합니다. (테이블의 인구 수치는 예제로만 제공됩니다).

상태 도시 인구
워싱턴 시애틀 700,000
또는 메드포드 주 200,000
또는 포틀랜드 400,000
CA (캘리포니아) 로스앤젤레스 800,000
CA 샌디에이고 600,000
워싱턴 타코 마 500,000
또는 코발리스 () 300,000

이제 다음 셰이프 명령을 실행합니다.

rst.Open  "SHAPE {select * from demographics} AS rs "  & _  
          "COMPUTE rs, SUM(rs.population) BY state", _  
           objConnection  

이 명령은 두 수준으로 구성된 레코드 집합을 엽니다. 부모 수준은 집계 열(SUM(rs.population)), 자식 Recordset(rs)를 참조하는 열 및 자식 Recordset(state)를 그룹화하기 위한 열이 있는 생성된 Recordset. Recordset는 쿼리 명령(select * from demographics)에 의해 반환된 자식 수준입니다.

자식 레코드 집합 세부 정보 행은 상태별로 그룹화되지만, 그 외의 특정한 순서는 없습니다. 즉, 그룹은 사전순 또는 숫자 순서가 아닙니다. 부모 Recordset 순서를 지정하려면 Recordset Sort 메서드를 사용하여 부모 Recordset순서를 지정할 수 있습니다.

이제 열린 부모 Recordset 탐색하고 자식 세부 정보 Recordset 개체에 액세스할 수 있습니다. 자세한 내용은 계층 레코드 집합에서 행에 액세스하는 방법을 참조하세요.

결과 부모 및 자식 세부 기록 집합

부모

SUM(rs. 모집단) rs 상태
1,300,000 child1에 대한 참조 CA (캐나다)
1,200,000 child2에 대한 참조 WA
1,100,000 child3에 대한 참조 또는

어린이1

상태 도시 인구
캘리포니아 로스앤젤레스 800,000
CA 샌디에이고 600,000

둘째 아이

도시 인구
워싱턴 (주) 시애틀 700,000
워싱턴주 타코 마 500,000

어린이3

도시 인구
또는 메드포드 주 200,000
또는 포틀랜드 400,000
또는 코발리스 () 300,000

참고 항목

계층적 레코드 집합에서 행 액세스
데이터 셰이핑 개요
필드 객체
정규 형태 문법
Recordset 개체 (ADO)
데이터 셰이핑에 필요한 공급자
도형 추가 절
일반적인 셰이프 명령
ADO Value 속성
Visual Basic for Applications 함수