2017-01-30 4 views
0

В настоящее время я пытаюсь запустить следующий код на наборе данныхSQL вопрос синтаксиса (выберите вопрос?)

SELECT m.FirstName, m.LastName 
FROM Master as m INNER JOIN AllStar as a 
ON m.LastName = a.LastName AND m.College = "California" 
GROUP BY m.LastName 
HAVING COUNT(a.GamesPlayed) > 2; 

Но я получаю ошибку

No such column: "California"

Почему это тот случай, когда я «Я пытаюсь сравнить значение столбца со строкой« Калифорния »?

Я в основном пытаюсь найти все баскетболист, которые участвовали в всех звездах> 3 раза и находятся из Cal для назначения HW, но мои ТОТ не реагирует на меня :-(

Заранее спасибо !

+4

Попробуйте одиночные кавычки 'вместо "двойных кавычек вокруг Калифорнии – AaronLS

+1

Вашей следующая ошибка будет, потому что вы ссылка' FirstName' напрямую, а не группировать в теме. Либо добавьте 'FirstName' в' GROUP BY', либо удалите его из списка SELECT. –

+1

Какую базу данных вы используете? – Bohemian

ответ

4

Двойные кавычки используется для identifiers, именно поэтому California строки рассматриваются как имя столбца. для строковых литералов использовать одиночные кавычки

При использовании Group by то все не агрегат столбец должен присутствовать в Group By пункте

SELECT m.FirstName, m.LastName 
FROM Master as m INNER JOIN AllStar as a 
ON m.LastName = a.LastName AND m.College = 'California' 
GROUP BY m.FirstName,m.LastName -- Missing FirstName here 
HAVING COUNT(a.GamesPlayed) > 2; 
+0

Я изменил «California» -> «Califorina» и добавил m.FirstName, но я все равно получаю ту же ошибку :-( – Tim

+0

@Tim вы должны добавить 'm.FirstName' в' group by' уже 'm.LastName 'присутствует –

+0

извините, я намеревался ввести то, что я добавил в m.FirstName – Tim

Смежные вопросы