Форум программистов, компьютерный форум, киберфорум
Наши страницы

Microsoft SQL Server

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 77, средняя оценка - 4.77
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
#1

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

19.12.2011, 11:49. Просмотров 13720. Ответов 20
Метки нет (Все метки)

Доброго времени суток!
Помогите плиз с запросом, недавно работаю с SQL, помощь просто необходима.

Есть таблица типа:
10:04 ааа
10:06 ааа
10:09 ббб
10:15 ввв
10:16 ааа
10:19 ввв
10:22 ббб

Необходимо выбрать сгруппировав из таблицы сообщение, количество его повторений и дату последнего сообщения, чтобы в итоге было так:

ааа 3 10:16
ббб 2 10:22
ввв 2 10:19

Ругается:

"Столбец недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 11:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Столбец недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY. (SQL Server):

Столбец "dbo.Seasontickets.ID" недопустим в списке выбора, поскольку он не содержится в агрегатной функции - SQL Server
Всем доброго времени суток. есть таблица TableName: ID int client_id int start_date date end_date date Мне нужно вывести...

Вывод столбца который не содержится ни в статистической функции, ни в предложении GROUP BY - SQL Server
Есть запрос с подзапросом, в котором 4 столбца - цена, имя продукта, год и месяц продажи. В подзапросе мы получаем общее кол-во продаж всех...

В списке выбора ComboBox1 содержится список городов. При выборе города в поле Edit1 вывести телефонный код - Delphi
19. В списке выбора ComboBox1 содержится список городов. При выборе города в поле Edit1 вывести телефонный код города. Коды городов...

График статистической функции распределения - MS Excel
Мне нужно построить в статистическую функцию распределения. Есть 100 значений(вариационный ряд), они располагаются по оси Х. По оси Y идут...

Содержится ли слово в списке - Python
Всем привет. Помогите, пожалуйста, начинающей! Понимаю, что вопрос элементарный, но уже настолько запуталась, что не могу сообразить. ...

Определить, содержится ли в заданном предложении введенное слово - Pascal
Определить, содержится ли в заданном предложении введенное слово. Написать программу на Pascal

20
Devil_FoX
161 / 135 / 1
Регистрация: 01.04.2010
Сообщений: 450
19.12.2011, 11:59 #2
Цитата Сообщение от nukanaka Посмотреть сообщение
Ругается:
"Столбец недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY."
Ругается на что? Какой код запроса?
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 12:05 #3
T-SQL
1
2
3
Select st1,count(st2) , max(st3)
from t
group by st1
1
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
19.12.2011, 13:10  [ТС] #4
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
T-SQL
1
2
3
Select st1,count(st2) , max(st3)
from t
group by st1
Спасибо!
Все проще, чем я предполагал)

Добавлено через 15 минут
Тааак, задание усложнилось, есть еще справочная таблица.
запрос такой:

SQL
1
2
3
4
5
SELECT DISTINCT EAS_Mess.dt, EAS_IdMess.mess 
FROM EAS_Mess, EAS_IdMess 
WHERE EAS_Mess.mess=EAS_IdMess.idm AND (dt >= '20100915 10:00' AND dt <= '20111219 09:00') 
GROUP BY EAS_Mess.mess
ORDER BY dt ASC

Ругается вот так:
Сообщение 8120, уровень 16, состояние 1, строка 1
Столбец "EAS_Mess.dt" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 13:17 #5
Что мешает указать EAS_Mess.d в group by ?
0
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
19.12.2011, 13:21  [ТС] #6
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Что мешает указать EAS_Mess.d в group by ?
поправьте меня, если я не прав:
Если в group by указываем EAS_Mess.dt, тогда группироваться будет по дате, а даты в моем случае все разные
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 13:32 #7
Каждый столбец таблицы или представления в любом нестатистическом выражении в списке <select> должен быть включен в список GROUP BY (C) MSDN
SQL
1
GROUP BY EAS_Mess.mess, EAS_Mess.dt
0
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
19.12.2011, 13:37  [ТС] #8
Убрал сортировку и добавил в group by EAS_mess.dt, ошибка прежняя:

Сообщение 8120, уровень 16, состояние 1, строка 1
Столбец "EAS_IdMess.mess" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 13:49 #9
T-SQL
1
GROUP BY EAS_Mess.mess, EAS_Mess.dt
0
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
19.12.2011, 13:52  [ТС] #10
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
T-SQL
1
GROUP BY EAS_Mess.mess, EAS_Mess.dt
SQL
1
2
3
4
SELECT DISTINCT EAS_Mess.dt, EAS_IdMess.mess 
FROM EAS_Mess, EAS_IdMess 
WHERE EAS_Mess.mess=EAS_IdMess.idm AND (dt >= '20100915 10:00' AND dt <= '20111219 09:00') 
GROUP BY EAS_Mess.mess, EAS_Mess.dt
Ошибка:
Сообщение 8120, уровень 16, состояние 1, строка 1
Столбец "EAS_IdMess.mess" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.


Вот как-то так!
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 14:01 #11
SELECT DISTINCT EAS_Mess.dt, EAS_IdMess.mess
GROUP BY EAS_Mess.mess, EAS_Mess.dt
Это не то поле!
0
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
19.12.2011, 14:16  [ТС] #12
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Это не то поле!
Ага, исправил:

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

не ругается, но и не группирует сообщения.
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 14:21 #13
Цитата Сообщение от nukanaka Посмотреть сообщение
не ругается, но и не группирует сообщения.
А по какому признаку будет группировать? Где агрегатная функция?
Например max
SQL
1
SELECT DISTINCT MAX(EAS_Mess.dt), EASMess.mess
И обрати внимание на порядок следования столбцов в group by - он важен
0
nukanaka
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 10
19.12.2011, 14:29  [ТС] #14
как я писал в начале мне необходимо чтобы группировалось по сообщению (mess), считалось количество этих сообщений (count(mess)) и выводилась последняя дата сообщения (max(dt))

как это сделать? я очень-очень новичок, помогите плиз
0
Ice_and_Fire
483 / 293 / 15
Регистрация: 22.06.2011
Сообщений: 929
19.12.2011, 14:33 #15
T-SQL
1
2
3
4
SELECT EASMess.mess, count (EASMess.mess), max(EAS_Mess.dt)
From [...]
Where [...]
Group by EASMess.mess
1
19.12.2011, 14:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 14:33
Привет! Вот еще темы с ответами:

Определить, содержится ли в предложении введенное с клавиатуры слово - C (СИ)
Определить, содержится ли в предложении введенное с клавиатуры слово.

Определить, сколько гласных букв содержится в предложении - Pascal ABC
Считает но не верно, не могу найти ошибку program lab42; {$APPTYPE CONSOLE} uses SysUtils; var s: string; i, c:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru