Продолжает считать все текстовые значения вместо меня, предоставляя критерии в SQL - PullRequest
0 голосов
/ 14 февраля 2020

У меня очень простой запрос, чтобы посчитать количество Причин Отмена из столбца Решение. Он продолжает считать все текстовые значения в столбце, а не просто вызывает отмену.

SELECT Marketics.Case, Count(Marketics.Decision) AS CountOfDecision
FROM Marketics
GROUP BY Marketics.Case
HAVING Count(Marketics.Decision="Cause Cancel");

Ответы [ 2 ]

2 голосов
/ 14 февраля 2020

Я думаю, что вы хотите пункт WHERE, а не пункт HAVING:

SELECT Marketics.Case, Count(Marketics.Decision) AS CountOfDecision
FROM Marketics
WHERE Marketics.Decision = "Cause Cancel";
GROUP BY Marketics.Case
0 голосов
/ 14 февраля 2020

Проблема в том, что в вашем предложении нет фактического сравнения. Это просто говорит, что count (). У них всех есть счет ... так что он возвращается правильно.

Теперь, если ваша цель состоит в том, чтобы получить результат с номером дела, подсчетом решений, где все это решения, КРОМЕ «Причины отмены», тогда вы нужно использовать предложение where, а не предложение has. Предложение имения просто отфильтрует все случаи, в которых нет хотя бы одного решения «отменить».

Конечно, это предполагает, что count () с неявным предложением where разрешено, чего я никогда раньше не видел ... но я из Microsoft SQL background.

SELECT Marketics.Case, Count(Marketics.Decision) AS CountOfDecision
FROM Marketics
GROUP BY Marketics.Case
HAVING Count(Marketics.Decision="Cause Cancel") > 0;
...