#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 столбец и так далее…. Вы должны вернуться сюда с первой полученной ошибкой.