MySqlDataReader 在查询中有sum(a+b)时读取数据

标签 mysql

当我使用这个查询时

 ("SELECT id, at_date AS MyDate , nom, pax, SUM(prix*pax) AS somme, 
  SUM(pax) AS totpax
  FROM atelier ORDER BY " + Order_by + " " + SortDir + " LIMIT @Myid," + 
  PublicVariables.MySqlLimit, conn)

这里报错

 _listBox[1].Items.Add(Convert.ToDateTime(reader["MyDate"]).ToString("d"));

因为表中没有行。表是空的。

但是当我从查询中抑制 SUM(prix*pax) AS somme 和 SUM(pax) AS totpax 时,读取器不会读取并且不会发生错误。

MySql有什么技巧吗?

我通过在调用此方法之前检查表是否有任何行来解决问题,但这不是我喜欢的任何想法?

最佳答案

在 order by 子句之前对所有非聚合函数使用 Group by 子句:

group by id,MyDate,nom,pax

关于MySqlDataReader 在查询中有sum(a+b)时读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732336/

相关文章:

MySql 社区服务器最低系统要求

mysql - 令人费解的查询性能结果

java - 如何将java程序直接自动连接到MySQL数据库?

python - 我尝试创建我的第一个数据库,但出现错误

php - 不能添加两个时间变量

mysql - 使用计数作为特定值

PHP - Mysql日期转换

php - 如何知道表是否为空?

php - MYSQL 获取行到不同的表

mysql - 亚音速 3,MySQL T4 模板 : Structs. tt 失败