【发布时间】:2013-09-21 14:00:19
【问题描述】:
我正在研究 asp.net 窗口应用程序中的一个应用程序,其数据存储在 excel 表中。 我在excel中有一张表: Sheet2(状态,点) 根据积分,每个州都会获得具有以下标准的奖牌:- 金牌:7分 银牌:5 分 铜牌:4分
我希望根据奖牌类型获得每个州的总奖牌,这意味着拥有最多金牌的州应该是最高的。如果两个州的金牌数量相同,那么拥有更多银牌的州应该在更高的位置。并且如果 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 个州拥有类似的金牌或银牌,则查询不起作用。请帮助我..谢谢
【问题讨论】:
-
我应用了代码格式化,因为它真的是一团糟。
-
现在已经格式化。现在请帮我解决这个问题