Как показать столбец при подсчете другого столбца в таблице результатов? - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть таблица SQL Server, как показано ниже:

enter image description here

Вот мой запрос для получения данных из MyTable:

SELECT COUNT(distinct Column1) AS CountCol1 
FROM MyTable  
WHERE ((CONVERT(CHAR, Column2, 104) = '27.09.2019') 
       OR (CONVERT(CHAR, Column2, 104) = '28.09.2019'))

В таблице результатов я хочу показать не только счетчик Column1, но и значение Column2.

Когда я пытаюсь изменить запрос следующим образом:

SELECT COUNT(DISTINCT Column1) AS CountCol1, Column2 AS Col2  
FROM MyTable  
WHERE ((CONVERT(CHAR, Column2, 104) = '27.09.2019') 
       OR (CONVERT(CHAR, Column2, 104) = '28.09.2019'))

Я получаю сообщение об ошибке:

Столбец MyTable.Column2 недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

Пожалуйста, помогите мне решить эту проблему и покажите столбец 2 в моей таблице результатов.

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Если вы хотите получить количество отдельных столбцов Column1 для каждого уникального значения Column2, это поможет:

SELECT Column2, COUNT(distinct Column1) AS CountCol1
FROM MyTable
GROUP BY Column2
HAVING (....)
WHERE (....)
0 голосов
/ 27 сентября 2019

Я нашел 2 проблемы здесь.

  1. за этим запросом должно следовать group by
  2. convert(char, col, 104) даст yyyy-dd-MM, вам нужно отформатировать вашпараметры даты.
SELECT COUNT(distinct Column1) AS CountCol1
    , Column2 As Col2  
FROM MyTable  
WHERE dateadd(dd, 0, dateadd(dd, 0, Column2))
   in (convert(datetime, '27.09.2019', 104), convert(datetime, '28.09.2019', 104))
GROUP BY Column2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...