Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста запрос составить / 9 сообщений из 9, страница 1 из 1
27.11.2001, 13:28
    #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
27.11.2001, 14:03
    #32017902
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста запрос составить
2 Vladimir
Ваша таблица нормализована только ко 2-й нормальной форме, поэтому практически невозможно сделать так как Вы хотите. Есть в этом случае только одна возможность посчитать суммы, у меня к сожалению нет BOL под рукой, а я не помню ключевое слово, кажется это Count by, только в этом случае у вас будет множественный рекордсет на выходе.
...
Рейтинг: 0 / 0
27.11.2001, 14:27
    #32017907
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста запрос составить
я путаюсь в формах нормализации и вообще слабо понял что нужно, поэтому такое тупое предложение:
SELECT ID, Name, MAX(Price) FROM Таблица GROUP BY ID, Name
так не подойдет?

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

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


2 SergSuper
Хотел сказать, что подойдет Ваш второй запрос, но потом подумалось, что максимальный прайс не обязательно будет под максимальным АйДи
...
Рейтинг: 0 / 0
27.11.2001, 14:38
    #32017911
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста запрос составить
select * from Таблица t1 where Price =
(select max(Price) from Таблица t2 where t1.Name=t2.Name)
...
Рейтинг: 0 / 0
27.11.2001, 14:46
    #32017913
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста запрос составить
2 Pandre
А если Ваш подзапрос выдаст десяток max(Price), с каким будете сравнивать?
...
Рейтинг: 0 / 0
27.11.2001, 14:52
    #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
27.11.2001, 14:53
    #32017915
Vladimir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста запрос составить
2 Pandre
Спасибо , вроде работает , хотя не совсем понимаю как!
2 Genady
А как SELECT Max... может выдать больше одной записи?
...
Рейтинг: 0 / 0
28.11.2001, 05:31
    #32017934
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста запрос составить
2 Pandre
Vladimir

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

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


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