2016-06-20 2 views
1

내가 하루 종일 사람이 입력 생산을하고 난 기계 사용 (MU)를 계산 C#에서 피벗 테이블 만들기 :과 같이 내 C# 프로그램에서

Date  | Part Number | Mold Num | Machine Num | MU 
2/12/2016 | 1185-5B8 | 6580 | 12   | .428    
2/12/2016 | 2249300  | 7797 | 36   | .271    
2/12/2016 | 146865  | 5096789 | 12   | .260    
2/16/2016 | 123456  | 7787 | 56   | .354    
2/16/2016 | 123456  | 787  | 54   | .45    
2/16/2016 | 123456  | 777  | 56   | .799    
2/16/2016 | 123456  | 87  | 54   | .611   

이 데이터의 내 모든 SQL 서버에 있고 내가하고 싶은 일은 피벗 테이블과 같은 것을 만드는 것입니다. 모든 유사한 날짜/금형 번호/기계 번호가 필요하며 평균값을 만들어 사용자가 원하는 방식으로 표시하십시오. 예 :

Date  | MU 
2/12/2016 | 32.0% 
2/16/2016 | 55.4% 

또는

Machine Num. | MU 
12  | 34.4% 
36  | 27.1% 
54  | 53.0% 
56  | 57.6% 

등 기본적으로 내가 변수로하고 보여주고 싶은 어떤이 필요로보고하는 사람. 내 C# 프로그램에 보관하고 싶지만 LINQ to SQL을 사용할 수 있습니다. 나는 C#과 LINQ to SQL에 대해 매우 새롭다는 것을 명심하십시오.

나는 this을 시도했지만 정확하게하고 싶지 않았습니다. 또한 어떻게 윈도우 폼에 표시할지, 각 열의 내용을 변경하는 방법을 알 수 없었습니다.

+0

설명하는 것은 피벗 테이블처럼 들리지 않습니다. 당신이 무언가에 의해 그룹화하고 평균을하고자하는 것처럼 들립니다. 피벗 테이블은 셀의 값을 열 이름으로 변경합니다. – juharr

+0

@juharr 필자는 Excel에서 작업 할 때 피벗 테이블을 사용했으며 설명 할 수있는 유일한 방법이었습니다. – Carlos

답변

1

열 차원 (날짜, 기계 번호), 피벗 치수 및 MU 별 평균 피벗 테이블을 작성해야하는 것처럼 보입니다.

var pivotData = new PivotData(
    new string[] {"Date","Machine Num"}, 
    new AverageAggregatorFactory("MU"), 
    new DataTableReader(t)); // just a sample - you can use DB data reader 
var pivotTable = new PivotTable(
    new []{"Date"}, // row dimension(s) 
    new [0], // column dimension(s) 
    pivotData); 
// use pivotTable.RowKeys and indexer for accessing pivot table values 

PivotData 라이브러리 (나는 저자 해요) 무료로 사용할 수 있습니다, 당신은 구성 요소의 페이지에서 예제 패키지를 다운로드 할 수 있습니다 :

은 쉽게 NReco PivotData 라이브러리의 도움으로 그렇게 할 수 있습니다. 또한 고급 PivotData Toolkit 구성 요소 (HTML/CSV/Excel/PDF로 피벗 테이블을 렌더링하고 DB 수준에서 GROUP BY 및 기타 여러 항목으로 데이터 집계)를 확인할 수도 있지만 무료는 아닙니다.

+0

위대한 도구인지 몰랐습니다. 참고로, 페이지의 첫 번째 샘플 (온라인 C# 피벗 테이블 데모)은 올바르지 않습니다. 행 = [국가, 연도] 및 열 = [제품]입니다. –

+0

@CetinBasoz hm 방금 확인했습니다. 올바른 것 같습니다. 저에게 연락하여 그 이유가 잘못되었음을 설명해 주시겠습니까? 어쩌면 나는 사소한 것을 놓쳤을 것이다 ... –

+0

처음에는 "Rows = [Country], Columns = [Year], Measure = [Sales Count]"라고 말합니다. 그러나 피봇 테이블은 "행 = [국가, 연도], 열 = [제품]"을 보여줍니다. –