DataTable.Compute 메서드
필터 조건을 전달하는 현재 행에서 지정된 식을 계산합니다.
public object Compute
(
string expression, // 계산할 식
string filter // 식에서 계산하는 행을 제한할 필터
);
*반환 값 : 계산 결과로 설정된 Object를 반환
expression 매개 변수에는 집계 함수가 필요합니다. 예를 들어, 다음은 올바른 식입니다.
Count(Quantity)
그러나 다음은 잘못된 식입니다.
Sum (Quantity * UnitPrice)
두 개 이상의 열에서 작업을 수행해야 하는 경우, DataColumn을 만들고 해당 Expression 속성을 적절한 식으로 설정한 다음 결과 열에 집계식을 사용해야 합니다.
예를 들어, DataColumn의 이름이 "total"이고 Expression 속성이 다음과 같이 설정된 것으로 가정합니다.
"Quantity * UnitPrice"
이러한 경우 Compute 메서드에 대한 식 인수는 다음과 같습니다.
Sum(total)
두 번째 매개 변수 filter 는 식에서 사용될 행을 결정합니다.
예를 들어, 테이블에 "colDate"라는 이름의 날짜 열이 있으면 다음 식을 사용하여 행을 제한할 수 있습니다.
colDate > 1/1/99 AND colDate < 17/1/99
두 매개 변수에 대한 식을 만드는 규칙에 대한 자세한 내용은 DataColumn 클래스의 Expression 속성을 참조하십시오.
다음 예제에서는 ID 번호가 5인 판매 사원에 대해 "Total" 열 값의 합계를 구합니다.
private void ComputeBySalesSalesID(DataSet myDataSet)
{
// Presumes a DataTable named "Orders" that has a column named "Total."
DataTable myTable;
myTable = myDataSet.Tables["Orders"];
// Declare an object variable.
object objSum;
objSum = myTable.Compute("Sum(Total)", "EmpID = 5");
}