С помощью этого запроса я получил 2 колонки различных значенийИспользование GROUP BY в SQL Server
SELECT DISTINCT
Transport.ID, Transport.Address
FROM
Cars
LEFT JOIN
Transport ON Cars.TransportFrom=Transport.ID
ORDER BY
address
Теперь мне нужно получить еще один столбец с суммой:
SUM(CASE WHEN Active='True' THEN 1 ELSE 0 END)
Но я получаю сообщение об ошибке, если я запросы, как
SELECT DISTINCT
Transport.ID, Transport.Address,
SUM(CASE WHEN Active = 'True' THEN 1 ELSE 0 END)
FROM
Cars
LEFT JOIN
Transport ON Cars.TransportFrom = Transport.ID
ORDER BY
address
Msg 8120, Level 16, State 1, Line 1
Столбец «Transport.ID» недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY.
SELECT
Transport.ID, Transport.Address,
SUM(CASE WHEN Active = 'True' THEN 1 ELSE 0 END)
FROM
Cars
LEFT JOIN
Transport ON Cars.TransportFrom = Transport.ID
ORDER BY
address
GROUP BY
ID
Msg 156, Level 15, State 1, Line 5
Неправильный синтаксис около ключевого слова 'GROUP'.
SELECT
Transport.ID, Transport.Address,
SUM(CASE WHEN Active = 'True' THEN 1 ELSE 0 END)
FROM
Cars
LEFT JOIN
Transport ON Cars.TransportFrom = Transport.ID
GROUP BY
ID
ORDER BY
address
Msg 209, уровень 16, состояние 1, строка 4
Неоднозначное имя столбца 'ID'.
SELECT
Transport.ID, Transport.Address,
SUM(CASE WHEN Active = 'True' THEN 1 ELSE 0 END)
FROM
Cars
LEFT JOIN
Transport ON Cars.TransportFrom = Transport.ID
GROUP BY
Transport.ID
ORDER BY
address
Msg 8120, уровень 16, состояние 1, строка 1
Колонка 'Transport.address' недопустим в списке выбора, поскольку он не содержится ни в статистической функции или GROUP BY пункт.
Как правильно получить синтаксис?
Вы должны добавить 'Transport.Address' в предложение' GROUP BY'. –