Синтаксические ошибки SQL, обнаруженные в visual studio

#c# #mysql #visual-studio #mysql-workbench

#c# #mysql #visual-studio #mysql-workbench

Вопрос:

Я получаю эту ошибку:

Ошибка в предложении SELECT: выражение рядом с ‘=’. Отсутствует в предложении. Ошибка в предложении 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 workbench, и это также произошло с другими моими запросами, которые отлично работают в mysql workbench, но не в Visual Studio.

Комментарии:

1. Пожалуйста, включите текст сообщения об ошибке в вопрос: изображений ошибок недостаточно.

2. Все subhearingsched.conclusion = и cases.nature_of_case = должно быть в WHERE предложении

3. Ошибка в предложении SELECT: выражение рядом с ‘=’. Отсутствует в предложении. Ошибка в предложении SELECT: выражение рядом с ‘,’. Невозможно проанализировать текст запроса. это ошибка, которая появляется каждый раз, когда я пытаюсь создать запрос

4. я, но мне нужно указать это, поскольку разные столбцы имеют разные условия, есть ли какие-либо альтернативы?

5. что вы пытаетесь сделать?

Ответ №1:

Не уверен, что используемый вами синтаксис является диалектом MySQL (и, следовательно, работает в MySQL workbench), но вам лучше использовать стандартный SQL, используя ‘CASE’ в ‘SUM’, например:

 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 ) 
  

Комментарии:

1. я пробовал это раньше, но это тоже не работает. он показывает ошибку Error in SELECT clause: expression near 'END'. Error in SELECT clause: expression near 'FROM'. Missing FROM clause. Unable to parse query text.

2. Тогда, вероятно, в вашем запросе опечатка. Я бы посоветовал вам проанализировать это шаг за шагом: сначала выберите * из подзаголовка, затем включите соединение, затем добавьте сумму без оператора case, затем добавьте простой оператор case, не включающий фактические столбцы, затем добавьте 1 столбец и так далее…. Вы должны вернуться сюда с первой полученной ошибкой.