【发布时间】:2013-09-20 08:59:00
【问题描述】:
我正在 ASP.NET 中开发一个窗口应用程序。为了存储我使用 Excel 工作表的数据。 Excel 工作表具有以下字段:
- 状态
- 点
为了获得,我有以下标准:
- 金币 - 7 分
- 银 - 5 分
- 青铜 - 4 分
我想计算每个州获得的金牌、银牌和铜牌的总数。为此,我使用了以下查询:
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,SUM(CASE WHEN Point = 7 THEN 1 ELSE 0 END) AS GoldCount,SUM(CASE WHEN Point = 5 THEN 1 ELSE 0 END) AS SilverCount,SUM(CASE WHEN Point = 4 THEN 1 ELSE 0 END) AS BronzeCount FROM [Sheet2$] GROUP BY STATE ORDER BY SUM(Point) DESC";
OdbcCommand cmd = new OdbcCommand(query, con);
OdbcDataAdapter da = new OdbcDataAdapter(cmd);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
但它显示错误:
ERROR [42000Օ] [Microsoft][ODBC Excel Driver] 语法错误(缺失 运算符)在查询表达式 'SUM(CASE WHEN Point = 7 THEN 1 ELSE 0 END)'。
如何解决此错误? 谢谢!
【问题讨论】:
-
有人可以帮忙吗?