c# - Visual Studio 2013 查询编辑器错误和 MYSQL

标签 c# mysql visual-studio

我有以下 MYSQL 查询:

SELECT
stat_number,
sqldate,
sqlvalue,
ID,
CAST(GROUP_CONCAT(IF(YEAR(sqldate)= 2013, sqlvalue, NULL)) AS UNSIGNED) AS Y2013,
CAST(GROUP_CONCAT(IF(YEAR(sqldate)= 2014, sqlvalue, NULL)) AS UNSIGNED) AS Y2014,
CAST(GROUP_CONCAT(IF(YEAR(sqldate)= 2015, sqlvalue, NULL)) AS UNSIGNED) AS Y2015,
weekofyear(sqldate) AS `weekofyear(sqldate)`
FROM statval1
WHERE (stat_number = 495) AND (sqldate >='2013-01-01' OR sqldate <'2015-12-31')
GROUP BY weekofyear(sqldate)
ORDER BY weekofyear(sqldate)

除了 Visual Studio 2013 查询编辑器之外,它在其他任何地方都可以正常工作, 有谁知道如何让它发挥作用?或者查询编辑器出了什么问题?

我不断收到错误:

Error in list of function arguments: '=' not recognized. Error in list of function arguments: 'AS' not recognized. Unable to parse query text.

如果我忽略错误并继续,数据网格似乎显示正确的数据,但图表中没有显示任何内容,我根本没有任何列来选择 x,Y 轴。我最近开始在 Visual Studio 2013 中学习 C#,我正在尝试重新创建一个用 PHP/MYSQL 制作并在 Object Pascal/MYSQL 中重新创建的软件,但这确实让我对 Visual Studio 望而却步。

只花了几周的时间就在 Lazarus 中创建了一个报告软件,从一无所知的 pascal 编程,我花了一周的时间才让 MYSQL 服务器在 Visual Studio 2013 中正常通信,现在查询不起作用,但它们可以与 object-pascal、PHP、JAVASCRIPT 等完美配合。

最佳答案

VS2013 中令人困惑的代码是这样的:

CAST(GROUP_CONCAT(IF(YEAR(sqldate)= 2013, sqlvalue, NULL)) AS UNSIGNED) AS Y2013,

您的查询在 VS2013 中工作正常。

但是,这个查询是什么意思?你确定它结构良好吗?您正在以一种难以理解的方式利用 MySQL 对 GROUP BY 的非标准扩展。阅读此内容:http://dev.mysql.com/doc/refman/5.6/en/group-by-handling.html

您可能会考虑重新处理此查询,使其成为标准查询。

此外,此日期选择逻辑省略 2015 年的最后一天。这是您想要的吗?

 (sqldate >='2013-01-01' OR sqldate <'2015-12-31')

关于c# - Visual Studio 2013 查询编辑器错误和 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28594478/

相关文章:

php - 我怎样才能使这个 mysql 查询工作而不会得到空结果?

c - 在 Visual Studio 中编写 C 代码

c# - 使用 Microsoft Fakes 填充 SerialPort 对象

c# - 在.Net 4.0中,数据访问应用程序 block 仍然是实现数据连接的方式吗?

c# - Vector2.Normalize函数,对对角线输出感到困惑

php - 将 URL 中的 ID 替换为用户名

c# - 在大约 50 个 IIS Web 服务器(asp.net 和 asp 组合)上部署代码的部署技术

mysql - 将 Mysql Location 条目拆分为 2 列?

windows - 适用于 Android 的 Visual Studio 模拟器不工作

visual-studio - F#双击文件在VS中创建一个副本