powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста запрос составить
9 сообщений из 9, страница 1 из 1
Помогите пожалуйста запрос составить
    #32017897
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следуящая :
Таблица например
ID Name Price
1 a 5
2 a 10
3 b 15
4 b 20

Нужно составить запрос типа SELECT Name, MAX(Price) FROM Таблица GROUP BY Name
но что бы получить и поле ID , а может и много полей, вобщем всю запись.
Вроде все должно как то просто делаться, но что й то не получается
Спасибо!
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017902
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vladimir
Ваша таблица нормализована только ко 2-й нормальной форме, поэтому практически невозможно сделать так как Вы хотите. Есть в этом случае только одна возможность посчитать суммы, у меня к сожалению нет BOL под рукой, а я не помню ключевое слово, кажется это Count by, только в этом случае у вас будет множественный рекордсет на выходе.
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017907
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я путаюсь в формах нормализации и вообще слабо понял что нужно, поэтому такое тупое предложение:
SELECT ID, Name, MAX(Price) FROM Таблица GROUP BY ID, Name
так не подойдет?

или так:
SELECT max(ID), Name, MAX(Price) FROM Таблица GROUP BY Name
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017910
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vladimir

Сорри, почему то принял Max за Sum
А о нормализации советую задуматься, могут вылезти всяческие грабли


2 SergSuper
Хотел сказать, что подойдет Ваш второй запрос, но потом подумалось, что максимальный прайс не обязательно будет под максимальным АйДи
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017911
Pandre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from Таблица t1 where Price =
(select max(Price) from Таблица t2 where t1.Name=t2.Name)
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017913
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pandre
А если Ваш подзапрос выдаст десяток max(Price), с каким будете сравнивать?
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017914
Pandre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Vladimir
Быстрее будет так

select t1.* from
Таблица t1,
(select Name, max(Price) as Price from Таблица group by Name) t2
where t1.Name=t2.Name and t1.Price = t2.Price

2 Genady
Внимательнее смотрите
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017915
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Pandre
Спасибо , вроде работает , хотя не совсем понимаю как!
2 Genady
А как SELECT Max... может выдать больше одной записи?
...
Рейтинг: 0 / 0
Помогите пожалуйста запрос составить
    #32017934
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pandre
Vladimir

Был глуп, признаюсь

но я все же упрямый, поэтому все равно призываю Vladimir нормализовать свою БД.
Вот честно говорю, почитайте Дейта об аномалиях обновления, вставки энд удаления, ну просто волосы встают дыбом, КОШМАР !!!!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста запрос составить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]