【问题标题】:SQL Syntax errors encountered visual studioVisual Studio 遇到的 SQL 语法错误
【发布时间】:2016-10-06 12:21:44
【问题描述】:

我收到此错误:

SELECT 子句中的错误:“=”附近的表达式。缺少 FROM 子句。 SELECT 子句中的错误:“,”附近的表达式。无法解析查询文本。

 SELECT Sum(subhearingsched.conclusion = 'Conciliated'
       AND cases.nature_of_case = 'Criminal') AS criminalconciliated,
   Sum(subhearingsched.conclusion = 'Repudiated'
       AND cases.nature_of_case = 'Criminal') AS criminalrepudiated,
   Sum(subhearingsched.conclusion = 'Arbitrated'
       AND cases.nature_of_case = 'Criminal') AS criminalarbitrated,
   Sum(subhearingsched.conclusion = 'Certified'
       AND cases.nature_of_case = 'Criminal') AS criminalcertified,
   Sum(subhearingsched.conclusion = 'Dismissed'
       AND cases.nature_of_case = 'Criminal') AS criminaldismissed,
   Sum(subhearingsched.conclusion = 'Forwarded'
       AND cases.nature_of_case = 'Criminal') AS criminalforwarded,
   Sum(subhearingsched.conclusion = 'Mediated'
       AND cases.nature_of_case = 'Criminal') AS criminalmediated,
   Sum(subhearingsched.conclusion = 'Conciliated'
       AND cases.nature_of_case = 'Civil')    AS civilconciliated,
   Sum(subhearingsched.conclusion = 'Repudiated'
       AND cases.nature_of_case = 'Civil')    AS civilrepudiated,
   Sum(subhearingsched.conclusion = 'Arbitrated'
       AND cases.nature_of_case = 'Civil')    AS civilarbitrated,
   Sum(subhearingsched.conclusion = 'Certified'
       AND cases.nature_of_case = 'Civil')    AS civilcertified,
   Sum(subhearingsched.conclusion = 'Dismissed'
       AND cases.nature_of_case = 'Civil')    AS civilldismissed,
   Sum(subhearingsched.conclusion = 'Forwarded'
       AND cases.nature_of_case = 'Civil')    AS civilforwarded,
   Sum(subhearingsched.conclusion = 'Mediated'
       AND cases.nature_of_case = 'Civil')    AS civilmediated,
   Sum(subhearingsched.conclusion = 'Conciliated'
       AND cases.nature_of_case = 'Others')   AS othersconciliated,
   Sum(subhearingsched.conclusion = 'Repudiated'
       AND cases.nature_of_case = 'Others')   AS othersrepudiated,
   Sum(subhearingsched.conclusion = 'Arbitrated'
       AND cases.nature_of_case = 'Others')   AS othersarbitrated,
   Sum(subhearingsched.conclusion = 'Certified'
       AND cases.nature_of_case = 'Others')   AS otherscertified,
   Sum(subhearingsched.conclusion = 'Dismissed'
       AND cases.nature_of_case = 'Others')   AS othersdismissed,
   Sum(subhearingsched.conclusion = 'Forwarded'
       AND cases.nature_of_case = 'Others')   AS othersforwarded,
   Sum(subhearingsched.conclusion = 'Mediated'
       AND cases.nature_of_case = 'Others')   AS othersmediated
  FROM   subhearingsched
   JOIN cases
     ON ( subhearingsched.caseno = cases.caseno )  

这是我的查询,当我在 Visual Studio 查询生成器中运行它时,它显示解析错误,但它在 mysql 工作台中运行良好,这也发生在我的其他查询中,在 mysql 工作台中运行良好但在 Visual Studio 中运行良好.

【问题讨论】:

  • 请在问题中包含错误消息的文本:错误图像不够。
  • 所有subhearingsched.conclusion =cases.nature_of_case = 都应该在WHERE 子句中
  • SELECT 子句中的错误:'=' 附近的表达式。缺少 FROM 子句。 SELECT 子句中的错误:“,”附近的表达式。无法解析查询文本。这是每次我尝试构建查询时出现的错误
  • i 但我需要指定它,因为不同的列有不同的条件,有没有其他选择?
  • 你想做什么?

标签: c# mysql visual-studio mysql-workbench


【解决方案1】:

不确定您使用的语法是否是 MySQL 方言(因此适用于 MySQL 工作台),但您最好使用标准 SQL,在“SUM”中使用“CASE”,如下所示:

SELECT Sum(CASE WHEN subhearingsched.conclusion = 'Conciliated'
       AND cases.nature_of_case = 'Criminal' THEN 1 ELSE 0 END) AS criminalconciliated
  FROM   subhearingsched
   JOIN cases
     ON ( subhearingsched.caseno = cases.caseno ) 

【讨论】:

  • 我以前试过这个,但它也不起作用。它显示错误Error in SELECT clause: expression near 'END'. Error in SELECT clause: expression near 'FROM'. Missing FROM clause. Unable to parse query text.
  • 那么您的查询中可能有错字。我建议您逐步分析它:首先从 subhearingsched 中选择 *,然后包含连接,然后包含不带 case 语句的总和,然后添加一个不涉及实际列的简单 case 语句,然后添加 1 列,依此类推on.... 你应该带着你收到的第一个错误回到这里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 2015-10-28
相关资源
最近更新 更多