2013-09-21 4 views
0

엑셀 시트에 저장된 데이터가있는 asp.net 창 응용 프로그램의 응용 프로그램에서 작업하고 있습니다. 나는 엑셀 시트가 있습니다 점에 기초 시트 2 (주 포인트) 을 각 주 기준을 다음했다 메달을 얻는 : - 골드 : 7 점 실버 : 5 포인트 청동 : 4 점3 condtiton을 기준으로 주문을 사용하는 방법

각 메달의 메달 종류가 메달 종류를 기준으로하고 싶다. 가장 많은 금메달을 가진 국가가 최상위이어야 함을 의미한다. 2 국가의 골드 수가 같으면 은메달이 많은 국가는 더 높은 위치에 있어야한다. 그리고 2 상태는 은메달 수가 같고 동메달이 많은 국가는 더 높은 위치에 있어야합니다. 나는 쿼리 다음과 같은 짓을 : -

OdbcConnection con = new OdbcConnection(ConfigurationManager.ConnectionStrings["SportTech"].ConnectionString); 
//string query = "select STATE,sum(Point) as MEDAL from [Sheet2$] Group by STATE order by sum(Point) desc"; 
//string query = "SELECT STATE,SUM(Point) AS MEDAL,(CASE Point == 7: 1 END) AS GoldCount FROM [Sheet2$] GROUP BY STATE ORDER BY SUM(Point) DESC"; 
string query = "select STATE,sum(Point) as MEDAL, sum(IIF(point = 7,1,0)) as Gold, sum(IIF(point = 5,1,0)) as Silver, sum(IIF(point = 4,1,0)) as Bronce from [Sheet2$] group by STATE order by sum(IIF(point = 7,1,0)) desc"; 
OdbcCommand cmd = new OdbcCommand(query, con); 
OdbcDataAdapter da = new OdbcDataAdapter(cmd); 
con.Open(); 
DataTable dt = new DataTable(); 
da.Fill(dt); 
con.Close(); 

하지만 2 주는 medals.kindly 메달을 위해 계산을 가정 me..Thanx

+1

알아 내기 쉬운 코드 형식을 적용했습니다. – roland

+0

이제 형식화되었습니다. 이제 친절하게이 질문을 해결하는 데 도움이 –

답변

1

도움 유사한 금 또는은을 가진 경우 쿼리가 작동하지 않는 작동을 수행해야 다음과 같이 ORDER BY 절에 추가 인수를 간단하게 추가 할 수 있습니다.

string query = "select STATE,sum(Point) as MEDAL, sum(IIF(point = 7,1,0)) as Gold, sum(IIF(point = 5,1,0)) as Silver, sum(IIF(point = 4,1,0)) as Bronce from [Sheet2$] group by STATE order by sum(IIF(point = 7,1,0)) desc, sum(IIF(point = 5,1,0)) desc, sum(IIF(point = 4,1,0)) desc"; 
+0

그것은 나를 위해 일한 고맙습니다. –

+0

한가지 더 선생님, 총 금 + 총은 + 총 청동을 계산하려면 어떻게 할 수 있습니까? 친절하게 도와주세요. 탄약 –

+0

나는 당신이 당신 자신의 질문에 대답했다고 생각합니다. 시도해 봐. – NYCdotNet

관련 문제