Помогите с СКЛ запросом к таблице access (отобрать уникальные записи по одному полю)

rubalex

Новичок
Помогите с СКЛ запросом к таблице access (отобрать уникальные записи по одному полю)

NAME PCS COLOR ID
Вася 2 red 1
Вася 3 blue 2
Вася 7 yelloy 3
Петя 4 yellow 4
Петя 2 blue 5
Петя 1 yelloy 6


Нужно показать

Name, pcs,color уникальные строчки по полю name!!!

Вася 2 red 1
Петя 4 yellow 4


DISTINCT не то.. отбирает только уникальную строку по всем полям.

GROUP BY требует группировать по всем полям а мне нужно только по одному!!

-~{}~ 28.02.05 11:39:

access 2000
конект из PHP через ODBC
 

Стас

Троечник
Не могу понять, по какому принципу ты отбираешь одну запись... Наименьшее id? Тогда нужно идти в два захода: 1. Выбрать список имен; 2. Что-то типа этого: select * from table where name='Вася' order by id limit 1.
 

rubalex

Новичок
по принципу первого вхождения например. это не важно какие строки мне вернет запрос

Вася 2 red 1
Петя 4 yellow 4

или

Вася 7 yelloy 3
Петя 1 yelloy 6

главное чтобы их было всего 2.

неужели в аксессе это так сложно?

в MYSQL это делает просто GROUP BY
 

JD

Новичок
Если тебе не важны данные кроме имени, зачем тогда их вообще возващать? Пускай запрос возвращает только уникальные имена и всё.
 

Стас

Троечник
Можно спросить а зачем? Если "... это не важно какие строки мне вернет запрос..."? Принцмп отбора (и надобность в этом что-то я не просекаю :( )
 

rubalex

Новичок
я привел немного условный пример чтобы было понятно что мне нужно. в реальной задачке примерно вот так

NAME PCS COLOR ID
Вася 2 red 1
Вася 2 red 7
Вася 2 red 9
Петя 4 yellow 11
Петя 4 yellow 15
Петя 4 yellow 19

и мне из этой раздутой таблицы нужно получить все 2 строчки полные
 

Стас

Троечник
Если я правильно понял, то для Васи pcs=2, color=red, и только ID меняется? И тебе нужно запросить данные с "не важно-каким-id"? Если так, то проще написать:

SELECT First(phpclub.name) AS [name поле], First(phpclub.pcs) AS [pcs поле], First(phpclub.color) AS [color поле], Last(phpclub.Код) AS [Last-Код]
FROM phpclub
GROUP BY phpclub.name, phpclub.pcs, phpclub.color
HAVING (((Last(phpclub.Код))>1) AND ((Count(phpclub.color))>1));

phpclub - это таблица, Код=Id, остальное все, соответствует, как ты давал.
 

rubalex

Новичок
то есть то что в MYSQL делается одной командой GROUP BY NAME
в accesse нужно вот с таким гимором? а если у меня полей 10-15 все из перечислять нужно по 2 раза?
 

rubalex

Новичок
это не моя база.. я контачусь к чужой через ODBC.
вообще странно ... такая простая вещь нужна а не сделать в один проход.
 
Сверху